12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package com.nosum.deliver.auth.service.impl;
- import cn.hutool.crypto.SecureUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.nosum.common.base.domain.Result;
- import com.nosum.common.base.domain.vo.UserSessionVO;
- import com.nosum.common.constant.Constants;
- import com.nosum.common.enums.ErrorEnum;
- import com.nosum.common.util.ExceptionUtil;
- import com.nosum.common.util.JwtUtil;
- import com.nosum.common.util.SessionUtil;
- import com.nosum.deliver.auth.dao.AuthTokenDao;
- import com.nosum.deliver.auth.dao.AuthUserDao;
- import com.nosum.deliver.auth.domain.po.AuthToken;
- import com.nosum.deliver.auth.domain.po.AuthUser;
- import com.nosum.deliver.auth.domain.vo.AuthUserVO;
- import com.nosum.deliver.auth.service.OauthService;
- import com.nosum.system.enums.RoleEnum;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.time.LocalDateTime;
- import java.time.ZoneOffset;
- import java.util.Collections;
- import java.util.Date;
- @Service
- @Slf4j
- public class OauthServiceImpl implements OauthService {
- @Autowired
- private AuthUserDao authUserDao;
- @Autowired
- private AuthTokenDao authTokenDao;
- @Override
- public Result login(AuthUserVO authUserVO) {
- log.debug("login {}", authUserVO);
- if (authUserVO == null || StringUtils.isBlank(authUserVO.getEmail()) || StringUtils.isBlank(authUserVO.getPassword())) {
- ExceptionUtil.rollback(ErrorEnum.PARAM_ERROR);
- }
- // 查询管理员
- AuthUser authUser = authUserDao.selectOne(new LambdaQueryWrapper<AuthUser>()
- .eq(AuthUser::getRoleId, RoleEnum.ADMIN.getRoleId())
- .eq(AuthUser::getEmail, authUserVO.getEmail()));
- ExceptionUtil.isRollback(authUser == null, ErrorEnum.ACCOUNT_NOT_EXIST);
- // 将密码加密后进行验证
- String psw = SecureUtil.md5(authUserVO.getPassword());
- ExceptionUtil.isRollback(!authUser.getPassword().equals(psw), ErrorEnum.PASSWORD_ERROR);
- // 生成token
- authUserVO.setRoles(Collections.singletonList(RoleEnum.getEnumTypeMap().get(authUser.getRoleId()).getRoleName()));
- authUserVO.setCreateTime(authUser.getCreateTime());
- String token = JwtUtil.getToken(new AuthUserVO().setPassword(authUser.getPassword()).setName(authUser.getName()).setId(authUser.getId()));
- authUserVO.setToken(token);
- authTokenDao.insert(new AuthToken().setUserId(authUser.getId()).setToken(token).setExpireTime(new Date(Constants.EXPIRE_TIME + System.currentTimeMillis()).toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime()));
- return Result.createWithModel(authUserVO);
- }
- @Override
- public Result updatePassword(AuthUserVO authUserVO) {
- if (StringUtils.isBlank(authUserVO.getPassword()) || StringUtils.isBlank(authUserVO.getPasswordOld())) {
- ExceptionUtil.isRollback(true, ErrorEnum.PARAM_ERROR);
- }
- UserSessionVO userSessionInfo = SessionUtil.getUserSessionInfo();
- AuthUser authUser = authUserDao.selectById(userSessionInfo.getId());
- if (!SecureUtil.md5(authUserVO.getPasswordOld()).equals(authUser.getPassword())) {
- ExceptionUtil.isRollback(true, ErrorEnum.UPDATE_PASSWORD_ERROR);
- }
- authUserDao.updateById(new AuthUser().setId(userSessionInfo.getId()).setPassword(SecureUtil.md5(authUserVO.getPassword())));
- return Result.createWithSuccessMessage();
- }
- @Override
- public Result registerAdmin(AuthUserVO authUserVO) {
- AuthUser authUser = authUserDao.selectOne(new LambdaQueryWrapper<AuthUser>().eq(AuthUser::getRoleId, RoleEnum.ADMIN.getRoleId()));
- if (authUser == null) {
- authUser = new AuthUser();
- authUser.setName(authUserVO.getEmail())
- .setEmail(authUserVO.getEmail())
- .setRoleId(RoleEnum.ADMIN.getRoleId())
- .setPassword(SecureUtil.md5(authUserVO.getPassword()))
- .setCreateTime(LocalDateTime.now())
- .setAccessKey(authUserVO.getAccessKey())
- .setSecretKey(authUserVO.getSecretKey());
- authUserDao.insert(authUser);
- } else {
- ExceptionUtil.isRollback(true, ErrorEnum.ACCOUNT_EXIST);
- }
- return Result.createWithSuccessMessage();
- }
- }
|