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.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.UserLogindConvertVO; import com.iden.common.vo.SysUserVO; import org.apache.commons.codec.digest.DigestUtils; 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; public UserLogindConvertVO getLoginUser(String username,String password) { UserLogindConvertVO userLogindConvertVO = null; QueryWrapper userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.lambda().eq(IdenSysUser::getUsername,username); IdenSysUser user = this.idenSysUserService.getOne(userQueryWrapper); if (user != null) { userLogindConvertVO = new UserLogindConvertVO(); BeanUtil.copyProperties(user,userLogindConvertVO); String md5Password = DigestUtils.md5Hex(password); if (!md5Password.equalsIgnoreCase(user.getPassword())) { throw new BDException("用户名或密码错误"); } if (ValidStatusEnum.INVALID.getValue().equals(user.getValidStatus())) { throw new BDException("用户已经停用"); } } return userLogindConvertVO; } /** * 查询系统用户列表 * @return */ public IPage listSysUser(String nickname, String username, UserLogindConvertVO loginUser, PageReqVO pageReqVo) { IPage page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(StrUtil.isNotEmpty(nickname),IdenSysUser::getNickname,nickname) .eq(StrUtil.isNotEmpty(username),IdenSysUser::getUsername,username) .orderByAsc(IdenSysUser::getUsername); IPage pageRes = this.idenSysUserService.page(page, queryWrapper); IPage results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal()); if(CollUtil.isNotEmpty(pageRes.getRecords())){ List 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, UserLogindConvertVO loginUser){ QueryWrapper 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); } }