123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package com.fdkankan.jp.xspace.service.impl;
- import cn.hutool.core.collection.CollUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.common.util.Base64Converter;
- import com.fdkankan.common.util.JwtUtil;
- import com.fdkankan.common.util.SecurityUtil;
- import com.fdkankan.jp.xspace.common.ResultCode;
- import com.fdkankan.jp.xspace.common.redis.RedisConstant;
- import com.fdkankan.jp.xspace.constant.XspaceErrorCode;
- import com.fdkankan.jp.xspace.dto.LoginDTO;
- import com.fdkankan.jp.xspace.entity.*;
- import com.fdkankan.jp.xspace.common.exception.BusinessException;
- import com.fdkankan.jp.xspace.mapper.ISysUserMapper;
- import com.fdkankan.jp.xspace.mapper.IUserMapper;
- import com.fdkankan.jp.xspace.service.*;
- import com.fdkankan.jp.xspace.vo.LoginVO;
- import com.fdkankan.jp.xspace.vo.UserVO;
- import com.fdkankan.redis.util.RedisUtil;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.List;
- import java.util.Objects;
- import java.util.Set;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 用户信息表 服务实现类
- * </p>
- *
- * @author
- * @since 2022-12-23
- */
- @Service
- public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements IUserService {
- @Resource
- private RedisUtil redisUtil;
- @Autowired
- private IUserRoleService userRoleService;
- @Autowired
- private IXspaceUserService xspaceUserService;
- @Autowired
- private IUserPlatformService userPlatformService;
- @Autowired
- private ISysUserService sysUserService;
- @Override
- public User getByUserName(String managerPhone) {
- LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(User::getUserName,managerPhone);
- return this.getOne(wrapper);
- }
- @Override
- public LoginVO login(LoginDTO param) {
- if (StringUtils.isEmpty(param.getPassword()) || StringUtils.isEmpty(param.getPhoneNum())){
- throw new BusinessException(ResultCode.PARAM_ERROR);
- }
- String passwordMd5 = SecurityUtil.MD52(Base64Converter.decode(Base64Converter.subText(param.getPassword())));
- // User user = this.getByUserName(param.getPhoneNum());
- SysUser user = sysUserService.getByUserName(param.getPhoneNum());
- if(user == null){
- throw new BusinessException(ResultCode.USER_NOT_EXIST);
- }
- if(!user.getPassword().equals(passwordMd5)){
- throw new BusinessException(ResultCode.PASSWORD_ERROR);
- }
- // List<UserPlatform> xspases = userPlatformService.list(new LambdaQueryWrapper<UserPlatform>().eq(UserPlatform::getUserId, user.getId()).eq(UserPlatform::getPlatformKey, "xspase"));
- // if(CollUtil.isEmpty(xspases)){
- // throw new BusinessException(XspaceErrorCode.CODE_90001.code(), XspaceErrorCode.CODE_90001.message());
- // }
- String token = this.redisLogin(user.getUserName(), JSONObject.toJSONString(user),"user");
- UserVO userVo = getUserVo(user);
- LoginVO vo = new LoginVO();
- vo.setToken(token);
- vo.setUser(userVo);
- XspaceUser xspaceUser = xspaceUserService.getByUserId(userVo.getId());
- if(Objects.isNull(xspaceUser)){
- xspaceUser = new XspaceUser();
- xspaceUser.setUserId(userVo.getId());
- xspaceUserService.save(xspaceUser);
- }
- return vo;
- }
- @Override
- public void logout(String token) {
- redisUtil.del(String.format(RedisConstant.KEY_XSPACE_TOKEN,token));
- }
- public String redisLogin(String userName,String value,String loginType){
- String token = JwtUtil.createJWT(-1,userName,loginType);
- String redisKey = String.format(RedisConstant.KEY_XSPACE_TOKEN,token);
- redisUtil.set(redisKey, value,2 * 60 * 60);
- return token;
- }
- private UserVO getUserVo(SysUser user){
- UserVO userVo = new UserVO();
- BeanUtils.copyProperties(user,userVo);
- List<UserRole> userRoles = userRoleService.getByUserId(userVo.getId());
- Set<Long> roleIds = userRoles.stream().map(UserRole::getRoleId).collect(Collectors.toSet());
- userVo.setRoleIds(roleIds);
- return userVo;
- }
- @Override
- public UserVO getUserInfo(String username) {
- SysUser sysUser = sysUserService.getByUserName(username);
- return getUserVo(sysUser);
- }
- }
|