From 40521d51f8c083212ceb1710ab0bea570821d063 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 04 十二月 2023 09:25:43 +0800 Subject: [PATCH] 平台端调度部门下拉框 --- ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | 68 +++++++++++++++++++++++++++++++-- 1 files changed, 63 insertions(+), 5 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 c8235e2..e151ebd 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 @@ -1,6 +1,7 @@ package com.ycl.service.user.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.util.PageUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.druid.sql.PagerUtils; @@ -49,6 +50,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -139,7 +141,7 @@ date = calendar.getTime(); umsAdmin.setExpirationDate(date); } else { - umsAdmin.setExpirationDate(new Date("2200-01-01")); + umsAdmin.setExpirationDate(new Date(2090,1,1)); } if (umsAdmin.getId() != null) { baseMapper.updateById(umsAdmin); @@ -258,13 +260,51 @@ //瀵嗙爜闇�瑕佸鎴风鍔犲瘑鍚庝紶閫� try { AdminUserDetails userDetails = (AdminUserDetails) loadUserByUsername(username); + + UmsAdmin admin = userDetails.getUmsAdmin(); + LocalDateTime nowTime = LocalDateTime.now(); + nowTime = nowTime.plusMinutes(-15); + if (admin.getPasswordErrorNum() != null && admin.getPasswordErrorNum() >= 5 + && admin.getPasswordErrorLastTime().isAfter(nowTime)) { + admin.setPasswordErrorLastTime(LocalDateTime.now()); + updateById(admin); + Asserts.fail("鐧诲綍澶辫触瓒呰繃5娆★紝姝よ处鍙疯閿佸畾锛岃15鍒嗛挓鍚庡啀璇曘��"); + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { + if (admin.getPasswordErrorNum() == null) { + admin.setPasswordErrorNum(1); + } else { + admin.setPasswordErrorNum(admin.getPasswordErrorNum() + 1); + } + admin.setPasswordErrorLastTime(LocalDateTime.now()); + updateById(admin); Asserts.fail("瀵嗙爜涓嶆纭�"); } if (!userDetails.isEnabled()) { Asserts.fail("甯愬彿宸茶绂佺敤"); } + admin.setPasswordErrorNum(0); + updateById(admin); + UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); + SecurityContextHolder.getContext().setAuthentication(authentication); + //鏍规嵁鐢ㄦ埛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) { + LOGGER.warn("鐧诲綍寮傚父:{}", e.getMessage()); + } + return token; + } + + @Override + public String getOAuthToken(String username) { + String token = null; + //瀵嗙爜闇�瑕佸鎴风鍔犲瘑鍚庝紶閫� + try { + AdminUserDetails userDetails = (AdminUserDetails) loadUserByUsername(username); UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); //鏍规嵁鐢ㄦ埛id锛岀敤鎴峰鍚� @@ -430,7 +470,7 @@ List<UmsMenu> resourceList = getResourceList(admin.getId()); return new AdminUserDetails(admin, resourceList); } - throw new UsernameNotFoundException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); + throw new UsernameNotFoundException("鐢ㄦ埛涓嶅瓨鍦�"); } @Override @@ -547,10 +587,23 @@ @Override public List<UmsAdmin> getDepartUser(Long departId) { + //TODO锛氭煡璇簩绾ч儴闂ㄥ強鎵�鏈夊瓙绾ч儴闂� + List<UmsDepart> umsDeparts = umsDepartManageMapper.selectChildrendIds(departId); + List<Long> parentIds = umsDeparts.stream().map(UmsDepart::getParentId).collect(Collectors.toList()); + List<Long> ids = umsDeparts.stream().map(UmsDepart::getId).collect(Collectors.toList()); + List<Long> departIds = new ArrayList<>(); + for (Long id : ids) { + if(!parentIds.contains(id)){ + departIds.add(id); + } + } + QueryWrapper<UmsDepartManage> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(UmsDepartManage::getDepartId, departId); - List<UmsDepartManage> list = umsDepartManageMapper.selectList(wrapper); - List<Long> userIds = list.stream().map(UmsDepartManage::getUserId).collect(Collectors.toList()); + wrapper.lambda().in(UmsDepartManage::getDepartId, departIds); + List<UmsDepartManage> users = umsDepartManageMapper.selectList(wrapper); + + List<Long> userIds = users.stream().map(UmsDepartManage::getUserId).collect(Collectors.toList()); + QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>(); wrapperUser.in("id", userIds); List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); @@ -575,5 +628,10 @@ return str; } + @Override + public UmsAdmin getByOpenid(String openid) { + LambdaQueryWrapper<UmsAdmin> wrapper = new LambdaQueryWrapper<UmsAdmin>().eq(UmsAdmin::getOpenid, openid).last("limit 1"); + return baseMapper.selectOne(wrapper); + } } -- Gitblit v1.8.0