From 6e63019ccba5a0e2e56ffe0f589932a00cd0bcba Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 04 十二月 2023 11:25:12 +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