From 33a30da7b2795fc60ebab8e89760087f5dfdd3a0 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 10 九月 2024 16:13:37 +0800
Subject: [PATCH] add:三端用户禁用后下线
---
src/main/java/com/mzl/flower/service/BaseService.java | 36 +++++++++++++++++
src/main/java/com/mzl/flower/service/supplier/SupplierService.java | 13 ++++++
src/main/java/com/mzl/flower/service/partner/PartnerService.java | 7 +++
src/main/java/com/mzl/flower/service/customer/CustomerService.java | 7 +++
4 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/BaseService.java b/src/main/java/com/mzl/flower/service/BaseService.java
index 363b03c..94c2d4c 100644
--- a/src/main/java/com/mzl/flower/service/BaseService.java
+++ b/src/main/java/com/mzl/flower/service/BaseService.java
@@ -1,8 +1,10 @@
package com.mzl.flower.service;
+import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mzl.flower.base.cache.MarkupCacheClient;
+import com.mzl.flower.base.cache.StringCacheClient;
import com.mzl.flower.config.exception.ValidationException;
import com.mzl.flower.config.security.SecurityUtils;
import com.mzl.flower.constant.Constants;
@@ -23,6 +25,10 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
+import org.springframework.security.oauth2.common.OAuth2RefreshToken;
+import org.springframework.security.oauth2.provider.token.TokenStore;
+import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.*;
@@ -30,10 +36,10 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.regex.Pattern;
import static java.time.format.DateTimeFormatter.BASIC_ISO_DATE;
+@Service
public class BaseService {
@Autowired
@@ -56,6 +62,16 @@
@Autowired
private FlowerCategoryMapper flowerCategoryMapper;
+
+ @Autowired
+ private StringCacheClient stringCacheClient;
+
+ @Autowired
+ private TokenStore tokenStore;
+
+ public static final String TOKEN_KEY = "TOKEN-KEY";
+
+ public static final String SEPARATOR = ":";
protected double getServiceFeeRate(List<FeeService> fees, Integer saleCount){
int sc = saleCount == null ? 0 : saleCount;
@@ -631,4 +647,22 @@
return null;
}
+ public void removeToken(String userId) {
+ String tokenCache = stringCacheClient.get(TOKEN_KEY + SEPARATOR + userId);
+ if (StringUtils.isNotBlank(tokenCache)) {
+ //强制删除token,下线
+ if (StringUtils.isNotBlank(tokenCache) && StringUtils.isNotBlank(userId)) {
+ stringCacheClient.delete(TOKEN_KEY + SEPARATOR + userId);
+ String tokenValue = tokenCache.replace(OAuth2AccessToken.BEARER_TYPE, StrUtil.EMPTY).trim();
+ OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
+ if (accessToken != null && StringUtils.isNotBlank(accessToken.getValue())) {
+ tokenStore.removeAccessToken(accessToken);
+ OAuth2RefreshToken refreshToken = accessToken.getRefreshToken();
+ tokenStore.removeRefreshToken(refreshToken);
+ }
+ }
+ }
+ }
+
+
}
diff --git a/src/main/java/com/mzl/flower/service/customer/CustomerService.java b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
index a4aa812..187c75b 100644
--- a/src/main/java/com/mzl/flower/service/customer/CustomerService.java
+++ b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
@@ -16,11 +16,13 @@
import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.mapper.customer.CustomerMapper;
import com.mzl.flower.mapper.partner.PartnerMapper;
+import com.mzl.flower.service.BaseService;
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.List;
@Service
@@ -31,6 +33,9 @@
private final CustomerMapper customerMapper;
private final PartnerMapper partnerMapper;
+
+ @Resource
+ private BaseService baseService;
public CustomerService(CustomerMapper customerMapper, PartnerMapper partnerMapper) {
this.customerMapper = customerMapper;
@@ -208,6 +213,8 @@
}
if (customer.getIsEnabled()) {
customer.setIsEnabled(false);
+ //强制下线
+ baseService.removeToken(customer.getUserId());
} else {
customer.setIsEnabled(true);
}
diff --git a/src/main/java/com/mzl/flower/service/partner/PartnerService.java b/src/main/java/com/mzl/flower/service/partner/PartnerService.java
index 15f9a26..f0f110e 100644
--- a/src/main/java/com/mzl/flower/service/partner/PartnerService.java
+++ b/src/main/java/com/mzl/flower/service/partner/PartnerService.java
@@ -12,6 +12,7 @@
import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.entity.supplier.Supplier;
import com.mzl.flower.mapper.partner.PartnerMapper;
+import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.UploadService;
import com.mzl.flower.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
@@ -20,6 +21,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
@@ -42,6 +44,9 @@
private final UploadService uploadService;
+
+ @Resource
+ private BaseService baseService;
public PartnerService(PartnerMapper partnerMapper, WxMaService maService, UploadService uploadService) {
this.partnerMapper = partnerMapper;
@@ -171,6 +176,8 @@
}
if (partner.getIsEnabled()) {
partner.setIsEnabled(false);
+ //强制下线
+ baseService.removeToken(partner.getUserId());
} else {
partner.setIsEnabled(true);
}
diff --git a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java
index 67e2e99..225c894 100644
--- a/src/main/java/com/mzl/flower/service/supplier/SupplierService.java
+++ b/src/main/java/com/mzl/flower/service/supplier/SupplierService.java
@@ -1,5 +1,6 @@
package com.mzl.flower.service.supplier;
+import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,15 +9,20 @@
import com.mzl.flower.constant.Constants;
import com.mzl.flower.dto.request.supplier.*;
import com.mzl.flower.dto.response.supplier.SupplierDTO;
-import com.mzl.flower.entity.customer.Customer;
import com.mzl.flower.entity.supplier.Supplier;
import com.mzl.flower.mapper.supplier.SupplierMapper;
+import com.mzl.flower.service.BaseService;
import com.mzl.flower.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
+import org.springframework.security.oauth2.common.OAuth2RefreshToken;
+import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
@@ -29,6 +35,9 @@
private final static String SUPPLIER_STATUS_REJECT = "R"; // 审核拒绝
private final SupplierMapper supplierMapper;
+
+ @Resource
+ private BaseService baseService;
public SupplierService(SupplierMapper supplierMapper) {
this.supplierMapper = supplierMapper;
@@ -196,6 +205,8 @@
}
if (supplier.getIsEnabled()) {
supplier.setIsEnabled(false);
+ //强制下线
+ baseService.removeToken(supplier.getUserId());
} else {
supplier.setIsEnabled(true);
}
--
Gitblit v1.9.3