123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- package com.iden.bms.service;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.iden.bms.params.ModifyPasswordParams;
- import com.iden.common.cache.RedisKeyConstant;
- import com.iden.common.cache.RedisUtil;
- import com.iden.common.entity.*;
- import com.iden.common.enums.UserRoleEnum;
- import com.iden.common.enums.ValidStatusEnum;
- import com.iden.common.exception.BDException;
- import com.iden.common.service.*;
- import com.iden.common.util.MyBeanUtils;
- import com.iden.common.vo.PageReqVO;
- import com.iden.common.vo.UserLoginedConvertVO;
- import com.iden.common.vo.SysUserVO;
- import org.apache.commons.codec.digest.DigestUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- *
- * @author makejava
- * @since 2021-05-21 00:08:38
- */
- @Service
- public class SysUserService {
- @Resource
- private IdenSysUserService idenSysUserService;
- @Resource
- RedisUtil redisUtil;
- public UserLoginedConvertVO getLoginUser(String username, String password, String securityCode) throws BDException {
- if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password) || StringUtils.isEmpty(securityCode)) {
- throw new BDException("登录参数不能为空");
- }
- String securityCodeRedis = (String)redisUtil.hget(RedisKeyConstant.LOGIN_VALIDATE_CODE,username);
- if (!securityCode.equalsIgnoreCase(securityCodeRedis)){
- throw new BDException("验证码不正确");
- }
- UserLoginedConvertVO userLoginedConvertVO = null;
- QueryWrapper<IdenSysUser> userQueryWrapper = new QueryWrapper<>();
- userQueryWrapper.lambda().eq(IdenSysUser::getUsername,username);
- IdenSysUser user = this.idenSysUserService.getOne(userQueryWrapper);
- if (user != null) {
- userLoginedConvertVO = new UserLoginedConvertVO();
- BeanUtil.copyProperties(user, userLoginedConvertVO);
- String md5Password = DigestUtils.md5Hex(password);
- if (!md5Password.equalsIgnoreCase(user.getPassword())) {
- throw new BDException("用户名或密码错误");
- }
- if (ValidStatusEnum.INVALID.getValue().equals(user.getValidStatus())) {
- throw new BDException("用户已经停用");
- }
- }
- return userLoginedConvertVO;
- }
- /**
- * 查询系统用户列表
- * @return
- */
- public IPage<SysUserVO> listSysUser(String nickname, String username, UserLoginedConvertVO loginUser, PageReqVO pageReqVo) {
- IPage<IdenSysUser> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
- QueryWrapper<IdenSysUser> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().like(StrUtil.isNotEmpty(nickname),IdenSysUser::getNickname,nickname)
- .eq(StrUtil.isNotEmpty(username),IdenSysUser::getUsername,username)
- .orderByAsc(IdenSysUser::getUsername);
- IPage<IdenSysUser> pageRes = this.idenSysUserService.page(page, queryWrapper);
- IPage<SysUserVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
- if(CollUtil.isNotEmpty(pageRes.getRecords())){
- List<SysUserVO> list = new ArrayList<>();
- pageRes.getRecords().forEach(item -> {
- SysUserVO resVO = new SysUserVO();
- BeanUtils.copyProperties(item,resVO);
- resVO.setValidStatusName(ValidStatusEnum.getValueToName(resVO.getValidStatus()));
- list.add(resVO);
- });
- results.setRecords(list);
- }
- return results;
- }
- /**
- * 删除系统用户
- * @param id
- * @return
- */
- public boolean deleteById(Long id){
- return this.idenSysUserService.removeById(id);
- }
- /**
- * 详情
- * @param id
- * @return
- */
- public SysUserVO getSysUserById(Long id){
- IdenSysUser idenSysUser = this.idenSysUserService.getById(id);
- if (idenSysUser!=null){
- SysUserVO resVO = new SysUserVO();
- BeanUtil.copyProperties(idenSysUser,resVO);
- resVO.setValidStatusName(ValidStatusEnum.getValueToName(resVO.getValidStatus()));
- return resVO;
- }
- return null;
- }
- /**
- * 保存系统用户
- * @param vo
- */
- @Transactional(rollbackFor = Exception.class)
- public int createSysUser(SysUserVO vo, UserLoginedConvertVO loginUser){
- QueryWrapper<IdenSysUser> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(IdenSysUser::getUsername,vo.getUsername());
- if(idenSysUserService.count(queryWrapper) > 0){
- return 1;
- }
- //保存系统用户
- IdenSysUser idenSysUser = new IdenSysUser();
- BeanUtil.copyProperties(vo,idenSysUser);
- idenSysUser.setCreateTime(new Date());
- idenSysUser.setRole(UserRoleEnum.HIGH.getValue());
- this.idenSysUserService.save(idenSysUser);
- return 0;
- }
- /**
- * 修改系统用户
- * @param vo
- */
- @Transactional(rollbackFor = Exception.class)
- public void updateSysUser(SysUserVO vo){
- //保存系统用户
- IdenSysUser idenSysUser = this.idenSysUserService.getById(vo.getId());
- MyBeanUtils.copyProperties(vo,idenSysUser);
- idenSysUser.setModifyTime(new Date());
- this.idenSysUserService.updateById(idenSysUser);
- }
- /**
- * 启用停用角色
- * @param vo
- */
- @Transactional(rollbackFor = Exception.class)
- public void invalidSysUser(SysUserVO vo) throws BDException {
- IdenSysUser idenSysUser = new IdenSysUser();
- BeanUtil.copyProperties(vo, idenSysUser);
- if(!this.idenSysUserService.updateById(idenSysUser)){
- throw new BDException("操作失败!");
- }
- }
- /**
- * 重置用户密码
- * @param
- */
- @Transactional(rollbackFor = Exception.class)
- public boolean resetPassword(Long id){
- UpdateWrapper<IdenSysUser> updateWrapper = new UpdateWrapper<>();
- updateWrapper.lambda().eq(IdenSysUser::getId,id)
- .set(IdenSysUser::getPassword, DigestUtils.md5Hex("123456"))
- .set(IdenSysUser::getModifyTime, new Date());
- return idenSysUserService.update(updateWrapper);
- }
- /**
- * 修改密码
- * @param parmas
- */
- @Transactional(rollbackFor = Exception.class)
- public boolean modifyPassword(Long id, ModifyPasswordParams parmas){
- IdenSysUser idenSysUser = this.idenSysUserService.getById(id);
- if(!idenSysUser.getPassword().equals(DigestUtils.md5Hex(parmas.getCurrPassword()))){
- return false;
- }
- UpdateWrapper<IdenSysUser> updateWrapper = new UpdateWrapper<>();
- updateWrapper.lambda().eq(IdenSysUser::getId,id)
- .set(IdenSysUser::getPassword, DigestUtils.md5Hex(parmas.getNewPassword()))
- .set(IdenSysUser::getModifyTime, new Date());
- return this.idenSysUserService.update(updateWrapper);
- }
- }
|