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