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后端) 一、项目背景 随着人们生活水平的提高和对健康的重视,健身房已经成为越来越多人日常生活中的一部分。为了提高健身房的管理效率,为健身爱好者提供更好的服务,设计一套健身房管理系统显得尤为重要。本项目旨在开发一个健身房管理系统,实现会员管理、课程管理、教练管理、场地管理、财务管理等功能。 二、技术选型 后端:Java + Spring Boot + MyBatis 数据库:MySQL 前端:Vue.js(可选) 开发工具:IntelliJ IDEA、MySQL Workbench 三、功能模块 1. **会员管理**:包括会员注册、会员信息查询、会员卡管理、会员消费记录等功能。 2. **课程管理**:包括课程添加、课程修改、课程查询、课程预约等功能。 3. **教练管理**:包括教练信息添加、教练信息修改、教练信息查询、教练排课等功能。 4. **场地管理**:包括场地信息添加、场地信息修改、场地信息查询、场地预约等功能。 5. **财务管理**:包括会员消费记录、场地租赁记录、教练课时费统计等功能。 6. **系统管理**:包括用户权限管理、系
资源推荐
资源详情
资源评论
收起资源包目录
个人毕业设计 健身房管理系统 java后端 (699个子文件)
$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
共 699 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
人工智能教学实践
- 粉丝: 533
- 资源: 258
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java的本科探索学习项目设计源码 - 本科探索
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功