From 42c81d1538e3c08c84a789ffafd9a7deafa1ff24 Mon Sep 17 00:00:00 2001 From: liyanqi <15181887205@163.com> Date: 星期二, 13 九月 2022 16:52:12 +0800 Subject: [PATCH] fix bug --- ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | 125 +++++++++++++++++++++++++++++++---------- 1 files changed, 93 insertions(+), 32 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java index 60beaa5..fd79564 100644 --- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java @@ -4,22 +4,34 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; import com.ycl.dto.UmsAdminParam; import com.ycl.dto.UpdateAdminPasswordParam; +import com.ycl.entity.depart.SccgDepart; import com.ycl.entity.user.*; import com.ycl.exception.Asserts; import com.ycl.mapper.user.UmsAdminLoginLogMapper; import com.ycl.mapper.user.UmsAdminMapper; import com.ycl.mapper.user.UmsResourceMapper; import com.ycl.mapper.user.UmsRoleMapper; +import com.ycl.service.depart.SccgDepartService; +import com.ycl.service.redis.RedisService; import com.ycl.service.user.UmsAdminCacheService; +import com.ycl.service.user.UmsDepartManageService; import com.ycl.service.user.UmsAdminRoleRelationService; import com.ycl.service.user.UmsAdminService; import com.ycl.utils.JwtTokenUtil; import com.ycl.utils.SpringUtil; +import com.ycl.utils.common.LiveTimeMillisecond; +import com.ycl.utils.common.MacUtils; +import com.ycl.utils.common.PojoUtils; +import com.ycl.utils.common.RandomUtils; +import com.ycl.utils.redis.RedisKey; +import com.ycl.vo.user.UserVO; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -31,6 +43,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -60,13 +73,19 @@ private UmsRoleMapper umsRoleMapper; @Resource private UmsResourceMapper umsResourceMapper; + @Resource + private SccgDepartService sccgDepartService; + @Resource + private UmsDepartManageService umsAdminDepartService; + @Resource + private RedisService redisService; @Override public UmsAdmin getAdminByUsername(String username) { UmsAdmin admin = getCacheService().getAdmin(username); - if(admin!=null) return admin; + if (admin != null) return admin; QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(UmsAdmin::getUsername,username); + wrapper.lambda().eq(UmsAdmin::getUsername, username); List<UmsAdmin> adminList = list(wrapper); if (adminList != null && adminList.size() > 0) { admin = adminList.get(0); @@ -77,14 +96,17 @@ } @Override + @Transactional(rollbackFor = Exception.class) public UmsAdmin register(UmsAdminParam umsAdminParam) { UmsAdmin umsAdmin = new UmsAdmin(); + //TODO mac,ip,鑱屽姟锛岀敤鎴风被鍨� BeanUtils.copyProperties(umsAdminParam, umsAdmin); umsAdmin.setCreateTime(new Date()); umsAdmin.setStatus(1); + umsAdmin.setMacAddress(MacUtils.getMac()); //鏌ヨ鏄惁鏈夌浉鍚岀敤鎴峰悕鐨勭敤鎴� QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(UmsAdmin::getUsername,umsAdmin.getUsername()); + wrapper.lambda().eq(UmsAdmin::getUsername, umsAdmin.getUsername()); List<UmsAdmin> umsAdminList = list(wrapper); if (umsAdminList.size() > 0) { return null; @@ -93,6 +115,10 @@ String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); umsAdmin.setPassword(encodePassword); baseMapper.insert(umsAdmin); + //瀵圭敤鎴峰悕绯荤粺榛樿娣诲姞 + umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId())); + baseMapper.updateById(umsAdmin); + return umsAdmin; } @@ -101,16 +127,18 @@ String token = null; //瀵嗙爜闇�瑕佸鎴风鍔犲瘑鍚庝紶閫� try { - UserDetails userDetails = loadUserByUsername(username); - if(!passwordEncoder.matches(password,userDetails.getPassword())){ + AdminUserDetails userDetails = (AdminUserDetails) loadUserByUsername(username); + if (!passwordEncoder.matches(password, userDetails.getPassword())) { Asserts.fail("瀵嗙爜涓嶆纭�"); } - if(!userDetails.isEnabled()){ + if (!userDetails.isEnabled()) { Asserts.fail("甯愬彿宸茶绂佺敤"); } UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); + //鏍规嵁鐢ㄦ埛id锛岀敤鎴峰鍚� + token = jwtTokenUtil.generateToken(userDetails.getUserId(), userDetails.getUsername()); + redisService.set(RedisKey.PLATFORM_TOKEN_KEY.concat(username), token, LiveTimeMillisecond.s7200.time); // updateLoginTimeByUsername(username); insertLoginLog(username); } catch (AuthenticationException e) { @@ -121,11 +149,12 @@ /** * 娣诲姞鐧诲綍璁板綍 + * * @param username 鐢ㄦ埛鍚� */ private void insertLoginLog(String username) { UmsAdmin admin = getAdminByUsername(username); - if(admin==null) return; + if (admin == null) return; UmsAdminLoginLog loginLog = new UmsAdminLoginLog(); loginLog.setAdminId(admin.getId()); loginLog.setCreateTime(new Date()); @@ -142,8 +171,8 @@ UmsAdmin record = new UmsAdmin(); record.setLoginTime(new Date()); QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(UmsAdmin::getUsername,username); - update(record,wrapper); + wrapper.lambda().eq(UmsAdmin::getUsername, username); + update(record, wrapper); } @Override @@ -153,28 +182,29 @@ @Override public Page<UmsAdmin> list(String keyword, Integer pageSize, Integer pageNum) { - Page<UmsAdmin> page = new Page<>(pageNum,pageSize); + Page<UmsAdmin> page = new Page<>(pageNum, pageSize); QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); LambdaQueryWrapper<UmsAdmin> lambda = wrapper.lambda(); - if(StrUtil.isNotEmpty(keyword)){ - lambda.like(UmsAdmin::getUsername,keyword); - lambda.or().like(UmsAdmin::getNickName,keyword); + if (StrUtil.isNotEmpty(keyword)) { + lambda.like(UmsAdmin::getUsername, keyword); + lambda.or().like(UmsAdmin::getNickName, keyword); } - return page(page,wrapper); + return page(page, wrapper); } @Override + @Transactional(rollbackFor = Exception.class) public boolean update(Long id, UmsAdmin admin) { admin.setId(id); UmsAdmin rawAdmin = getById(id); - if(rawAdmin.getPassword().equals(admin.getPassword())){ + if (rawAdmin.getPassword().equals(admin.getPassword())) { //涓庡師鍔犲瘑瀵嗙爜鐩稿悓鐨勪笉闇�瑕佷慨鏀� admin.setPassword(null); - }else{ + } else { //涓庡師鍔犲瘑瀵嗙爜涓嶅悓鐨勯渶瑕佸姞瀵嗕慨鏀� - if(StrUtil.isEmpty(admin.getPassword())){ + if (StrUtil.isEmpty(admin.getPassword())) { admin.setPassword(null); - }else{ + } else { admin.setPassword(passwordEncoder.encode(admin.getPassword())); } } @@ -196,7 +226,7 @@ int count = roleIds == null ? 0 : roleIds.size(); //鍏堝垹闄ゅ師鏉ョ殑鍏崇郴 QueryWrapper<UmsAdminRoleRelation> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(UmsAdminRoleRelation::getAdminId,adminId); + wrapper.lambda().eq(UmsAdminRoleRelation::getAdminId, adminId); umsAdminRoleRelationService.remove(wrapper); //寤虹珛鏂板叧绯� if (!CollectionUtils.isEmpty(roleIds)) { @@ -221,31 +251,31 @@ @Override public List<UmsResource> getResourceList(Long adminId) { List<UmsResource> resourceList = getCacheService().getResourceList(adminId); - if(CollUtil.isNotEmpty(resourceList)){ - return resourceList; + if (CollUtil.isNotEmpty(resourceList)) { + return resourceList; } resourceList = umsResourceMapper.getResourceList(adminId); - if(CollUtil.isNotEmpty(resourceList)){ - getCacheService().setResourceList(adminId,resourceList); + if (CollUtil.isNotEmpty(resourceList)) { + getCacheService().setResourceList(adminId, resourceList); } return resourceList; } @Override public int updatePassword(UpdateAdminPasswordParam param) { - if(StrUtil.isEmpty(param.getUsername()) - ||StrUtil.isEmpty(param.getOldPassword()) - ||StrUtil.isEmpty(param.getNewPassword())){ + if (StrUtil.isEmpty(param.getUsername()) + || StrUtil.isEmpty(param.getOldPassword()) + || StrUtil.isEmpty(param.getNewPassword())) { return -1; } QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(UmsAdmin::getUsername,param.getUsername()); + wrapper.lambda().eq(UmsAdmin::getUsername, param.getUsername()); List<UmsAdmin> adminList = list(wrapper); - if(CollUtil.isEmpty(adminList)){ + if (CollUtil.isEmpty(adminList)) { return -2; } UmsAdmin umsAdmin = adminList.get(0); - if(!passwordEncoder.matches(param.getOldPassword(),umsAdmin.getPassword())){ + if (!passwordEncoder.matches(param.getOldPassword(), umsAdmin.getPassword())) { return -3; } umsAdmin.setPassword(passwordEncoder.encode(param.getNewPassword())); @@ -255,12 +285,12 @@ } @Override - public UserDetails loadUserByUsername(String username){ + public UserDetails loadUserByUsername(String username) { //鑾峰彇鐢ㄦ埛淇℃伅 UmsAdmin admin = getAdminByUsername(username); if (admin != null) { List<UmsResource> resourceList = getResourceList(admin.getId()); - return new AdminUserDetails(admin,resourceList); + return new AdminUserDetails(admin, resourceList); } throw new UsernameNotFoundException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); } @@ -269,4 +299,35 @@ public UmsAdminCacheService getCacheService() { return SpringUtil.getBean(UmsAdminCacheService.class); } + + @Override + public IPage<UmsAdmin> pageUser(UserVO.PageUserVO pageUserVO) { + int pageSize = pageUserVO.getPageSize(); + int current = pageUserVO.getCurrent(); + Page<UmsAdmin> page = new Page<>(current, pageSize); + LambdaQueryWrapper<UmsAdmin> queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotBlank(pageUserVO.getJobTitle())) { + queryWrapper.eq(UmsAdmin::getJobTitle, pageUserVO.getJobTitle()); + } + if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getUserType())) { + queryWrapper.eq(UmsAdmin::getUserType, pageUserVO.getUserType()); + } + if (StringUtils.isNotBlank(pageUserVO.getMobile())) { + queryWrapper.like(UmsAdmin::getMobile, pageUserVO.getMobile()); + } + if (PojoUtils.Vo.isUsefulSearchParam(pageUserVO.getDepartmentId())) { + queryWrapper.eq(UmsAdmin::getDepartmentId, pageUserVO.getDepartmentId()); + } + Page<UmsAdmin> page1 = baseMapper.selectPage(page, queryWrapper); + List<UmsAdmin> records = page1.getRecords(); + if (CollUtil.isNotEmpty(records)) { + records.forEach(e -> { + SccgDepart sccgDepart = sccgDepartService.getById(e.getDepartmentId()); + if (null != sccgDepart) { + e.setDepartName(sccgDepart.getDepartName()); + } + }); + } + return page1; + } } -- Gitblit v1.8.0