package com.gp.user_manager.user.service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.gp.framework.domain.user.*;
import com.gp.framework.domain.user.ext.*;
import com.gp.framework.domain.user.request.QueryUserAndRoleRequest;
import com.gp.framework.domain.user.response.UserCode;
import com.gp.framework.exception.ExceptionCast;
import com.gp.framework.model.response.CommonCode;
import com.gp.framework.model.response.QueryResponseResult;
import com.gp.framework.model.response.QueryResult;
import com.gp.framework.model.response.ResponseResult;
import com.gp.user_manager.user.client.CmsClient;
import com.gp.user_manager.user.client.FileSystemClient;
import com.gp.user_manager.user.dao.*;
import gp.framework.utils.BCryptUtil;
import gp.framework.utils.CookieUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
* @author 码农界的小学生
* @description:
* @title: UserService
* @projectName graduation-project
* @description: TODO
* @date 2020/3/16 22:36
*/
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private UserRoleRepository userRoleRepository;
@Autowired
private RoleRepository roleRepository;
@Autowired
private PermissionRepository permissionRepository;
@Autowired
private MenuRepository menuRepository;
@Autowired
private UserAndRoleMapper userAndRoleMapper;
@Autowired
private FileSystemClient fileSystemClient;
@Autowired
private CmsClient cmsClient;
/**
* 添加用户和用户-角色关联表
* @param userRegister
* @return
*/
@Transactional
public ResponseResult registerUser(UserRegister userRegister) {
if (userRegister == null){
ExceptionCast.cast(CommonCode.INVALID_PARAM);
}
//判断两次密码输入是否一致
if(!userRegister.getFirstpassword().equals(userRegister.getSecondpassword())){
ExceptionCast.cast(UserCode.PASSWORD_INCONSISTENCY);
}
//判断用户名是否存在
String username = userRegister.getUsername();
User result = userRepository.findByUsername(username);
if(result != null){
ExceptionCast.cast(UserCode.USERNAME_EXISTS);
}
//实例化一个user对象
User user = new User();
user.setName(userRegister.getName());
user.setUsername(username);
String password = BCryptUtil.encode(userRegister.getFirstpassword());
user.setPassword(password);
user.setUserpic(userRegister.getUserpic());
if(StringUtils.isNotEmpty(userRegister.getBirthday())){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date birthday= simpleDateFormat.parse(userRegister.getBirthday());
user.setBirthday(birthday);
} catch (ParseException e) {
ExceptionCast.cast(UserCode.TIMEFORMAT_ERROR);
e.printStackTrace();
}
}
user.setSex(userRegister.getSex());
user.setEmail(userRegister.getEmail());
user.setPhone(userRegister.getPhone());
user.setQq(userRegister.getQq());
user.setCreateTime(new Date());
user.setUpdateTime(new Date());
User save = userRepository.save(user);
//删除cookie
this.deleteCodeCookie(save.getPhone());
ResponseResult responseResult = this.addUserRole(save.getId(), userRegister);
return responseResult;
}
/**
* 向user_role表添加信息
* @param userId
* @param userRegister
* @return
*/
public ResponseResult addUserRole(String userId,UserRegister userRegister){
UserRole userRole = new UserRole();
userRole.setUserId(userId);
userRole.setRoleId(userRegister.getRoleid());
userRole.setCreator(userRegister.getCreator());
userRole.setCreateTime(new Date());
userRoleRepository.save(userRole);
return new ResponseResult(UserCode.REGISTER_SUCCESS);
}
@Transactional
/**
* 根据用户名查询用户信息
*/
public UserExt findUserExtByUsername(String username) {
//根据用户名查询用户信息
User user = userRepository.findByUsername(username);
if(user == null){
return null;
}
//查询用户对应的角色信息
UserRole userRole = this.findUserRoleByUserId(user.getId());
if(userRole == null){
return null;
}
Role role = this.findRoleById(userRole.getRoleId());
if(role == null){
return null;
}
//查询角色对应的权限id
List<Permission> permissionList = this.findPermissionByRoleId(userRole.getRoleId());
if(permissionList == null || permissionList.size() < 0){
return null;
}
//根据权限id查询对应的权限
List<Menu> menuList = new ArrayList<>();
for(Permission permission : permissionList){
Menu menu = this.findMenuByMenuId(permission.getMenuId());
if(menu == null){
return null;
}
menuList.add(menu);
}
//如果信息都完整 则开始组装
UserExt userExt = new UserExt();
//将user拷贝到userExt
BeanUtils.copyProperties(user,userExt);
userExt.setRole_name(role.getRoleName());
userExt.setPermissions(menuList);
return userExt;
}
/**
* 根据用户id查询用户-角色表信息
* @param userId
* @return
*/
private UserRole findUserRoleByUserId(String userId){
UserRole userRole = userRoleRepository.findByUserId(userId);
return userRole;
}
/**
* 根据roleid查询信息
* @param roleId
* @return
*/
private Role findRoleById(Integer roleId){
Optional<Role> byId = roleRepository.findById(roleId);
if(!byId.isPresent()){
return null;
}
return byId.get();
}
/**
* 根据角色查询权限列表
* @param roleId
* @return
*/
private List<Permission> findPermissionByRoleId(Integer roleId){
List<Permission> list = permissionRepository.findByRoleId(roleId);
return list;
}
private Menu findMenuByMenuId(Integer menuId){
Optional<Menu> byId = menuRepository.findById(menuId);
if(!byId.isPresent()){
return null;
}
return byId.get();
}
/**
* 根据page size分页查询用户列表
* @param page
* @param size
* @return
*/
@Transactional
public QueryResponseResult<UserList> findUserAndRoleList(int page, int size, QueryUserAndRoleRequest queryUserAndRoleRequest) {
PageHelper.startPage(page,size);
QueryUserAndRoleRequest request = new QueryUserAndRoleRequest();
if(queryUserAndRoleRequest != null && StringUtils.isNotEmpty(queryUserAndRoleRequest.getRoleId())){
request.setRoleId(queryUserAndRoleRequest.getRoleId());
}
if(queryUserAndRoleRequest != null && StringUtils.isNotEmpty(queryUserAndRoleRequest.getUsername())){
request.setUsername(queryUserAndRoleRequest.getUsername());
}
Page<UserList> userAndRoleList = userAndRoleMapper
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计 健身房管理系统 java后端.zip (698个子文件)
$PRODUCT_WORKSPACE_FILE$ 1KB
UserService.class 14KB
PayService.class 9KB
AuthService.class 8KB
UserInformation.class 8KB
AuthorizationServerConfig.class 7KB
Employee.class 7KB
UserRegister.class 7KB
HttpClient.class 7KB
User.class 7KB
UserList.class 6KB
Supplier.class 6KB
EquipmentService.class 6KB
EmailService.class 6KB
AuthController.class 6KB
UserController.class 6KB
EmployeeService.class 6KB
Equipment.class 6KB
OrderService.class 5KB
FileSystemService.class 5KB
QRCodeService.class 5KB
RabbitmqConfig.class 5KB
Snowflake.class 5KB
HlsVideoUtil.class 5KB
SmsService.class 5KB
UserDetailsServiceImpl.class 5KB
VideoUtil.class 5KB
TestJwt.class 5KB
ResourceServerConfig.class 4KB
Role.class 4KB
ResourceServerConfig.class 4KB
SupplierService.class 4KB
ResourceServerConfig.class 4KB
Menu.class 4KB
PermissionService.class 4KB
AuthCode.class 4KB
Order.class 4KB
WebSecurityConfig.class 4KB
MD5Util.class 4KB
MenuService.class 4KB
UserRole.class 4KB
RabbitmqConfig.class 4KB
Super.class 4KB
QRCodeController.class 4KB
OrderCollection.class 4KB
Mp4VideoUtil.class 3KB
ResourcesCode.class 3KB
EmailSendService.class 3KB
Permission.class 3KB
XcOauth2Util$UserJwt.class 3KB
FileSystem.class 3KB
ExceptionCatch.class 3KB
AliDevPayConfig.class 3KB
UserJwt.class 3KB
SysDictionary.class 3KB
EmployeeController.class 3KB
QRCodeTest.class 3KB
getPublicKey.class 3KB
PermissionAndMenu.class 3KB
EquipmentController.class 3KB
ResponseResult.class 3KB
AuthToken.class 3KB
PasswordExt.class 3KB
SmsSendCodeService.class 3KB
BirthTemplet.class 3KB
UserCode.class 3KB
SnowflakeIdWorker.class 3KB
SupplierController.class 3KB
QueryResponseResult.class 3KB
FileSystemCode.class 3KB
CustomUserAuthenticationConverter.class 3KB
OrderController.class 3KB
UserPunch.class 2KB
birthTest.class 2KB
PermissionInit.class 2KB
PermissionController.class 2KB
CookieUtil.class 2KB
QueryResult.class 2KB
UserExt.class 2KB
SuperService.class 2KB
CommonCode.class 2KB
SuperService.class 2KB
SmsSendCode.class 2KB
User_date.class 2KB
OrderValue.class 2KB
UploadResult.class 2KB
GenerateOrderNum.class 2KB
Swagger2Configuration.class 2KB
QueryUserAndRoleRequest.class 2KB
MessageTest.class 2KB
LoginRequest.class 2KB
QueryOrderRequest.class 2KB
UserControllerApi.class 2KB
SmsController.class 2KB
RoleService.class 2KB
UserReset.class 2KB
Oauth2Util.class 2KB
LoginResult.class 2KB
JwtResult.class 2KB
CustomException.class 2KB
共 698 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
JJJ69
- 粉丝: 6235
- 资源: 5778
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功