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;
|
import com.mzl.flower.dto.PriceDTO;
|
import com.mzl.flower.dto.response.payment.OrderSalesItemChargeDTO;
|
import com.mzl.flower.entity.customer.Customer;
|
import com.mzl.flower.entity.flower.*;
|
import com.mzl.flower.entity.menber.Member;
|
import com.mzl.flower.entity.partner.Partner;
|
import com.mzl.flower.entity.payment.FeeService;
|
import com.mzl.flower.entity.payment.OrderItemSales;
|
import com.mzl.flower.entity.payment.OrderSalesItem;
|
import com.mzl.flower.entity.supplier.Supplier;
|
import com.mzl.flower.mapper.customer.CustomerMapper;
|
import com.mzl.flower.mapper.flower.FlowerCategoryMapper;
|
import com.mzl.flower.mapper.member.MemberMapper;
|
import com.mzl.flower.mapper.partner.PartnerMapper;
|
import com.mzl.flower.mapper.supplier.SupplierMapper;
|
import com.mzl.flower.mapper.system.UserMapper;
|
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.math.RoundingMode;
|
import java.time.*;
|
import java.time.format.DateTimeFormatter;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import static java.time.format.DateTimeFormatter.BASIC_ISO_DATE;
|
|
@Service
|
public class BaseService {
|
|
@Autowired
|
protected UserMapper userMapper;
|
|
@Autowired
|
protected RedisTemplate<String, String> stringRedisTemplate;
|
|
@Autowired
|
protected SupplierMapper supplierMapper;
|
|
@Autowired
|
protected PartnerMapper partnerMapper;
|
|
@Autowired
|
protected CustomerMapper customerMapper;
|
|
@Autowired
|
protected MarkupCacheClient markupCacheClient;
|
|
@Autowired
|
private FlowerCategoryMapper flowerCategoryMapper;
|
|
@Autowired
|
private MemberMapper memberMapper;
|
|
protected Member getMember(Long levelId){
|
return memberMapper.selectById(levelId);
|
}
|
|
@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;
|
double rate = 0D;
|
if(fees != null && fees.size() > 0){
|
for(FeeService f : fees){
|
Integer lowerNum = f.getLowerNum();//下限
|
Integer upperNum = f.getUpperNum();//上限
|
Double feeRate = f.getFeeRate();//费率 %
|
if (lowerNum == null && upperNum == null) {
|
continue;
|
}
|
|
if (lowerNum == null) {
|
if(sc <= upperNum){
|
rate = feeRate;
|
break;
|
}
|
} else if (upperNum == null) {
|
if(sc > lowerNum){
|
rate = feeRate;
|
break;
|
}
|
} else if (sc <= upperNum && sc > lowerNum) {
|
rate = feeRate;
|
break;
|
}
|
}
|
}
|
|
return rate;
|
}
|
|
protected void prepareSalesAmount(OrderItemSales s
|
, Map<String, BigDecimal> supplierSalesMap
|
, Map<String, BigDecimal> partnerSalesMap
|
, Map<String, BigDecimal> platformSalesMap){
|
String orderItemId = s.getOrderItemId();
|
if (supplierSalesMap != null) {
|
BigDecimal feeSupplier = s.getFeeSupplier();
|
BigDecimal b = supplierSalesMap.get(orderItemId);
|
if (b == null) {
|
b = new BigDecimal(0);
|
}
|
supplierSalesMap.put(orderItemId, b.add(feeSupplier));
|
}
|
|
if (partnerSalesMap != null) {
|
BigDecimal feePartner = s.getFeePartner();
|
BigDecimal b = partnerSalesMap.get(orderItemId);
|
if (b == null) {
|
b = new BigDecimal(0);
|
}
|
partnerSalesMap.put(orderItemId, b.add(feePartner));
|
}
|
|
if (platformSalesMap != null) {
|
BigDecimal feePlatform = getAmount(s.getFeePlatform());
|
BigDecimal feePlatformPack = getAmount(s.getFeePlatformPack());
|
BigDecimal feePlatformCheck = getAmount(s.getFeePlatformCheck());
|
BigDecimal feePlatformTransport = getAmount(s.getFeePlatformTransport());
|
|
BigDecimal b = platformSalesMap.get(orderItemId);
|
if (b == null) {
|
b = new BigDecimal(0);
|
}
|
b = b.add(feePlatform).add(feePlatformPack).add(feePlatformCheck).add(feePlatformTransport);
|
platformSalesMap.put(orderItemId, b);
|
}
|
}
|
|
protected BigDecimal getAmount(BigDecimal amount){
|
return amount == null ? new BigDecimal(0) : amount;
|
}
|
|
protected void prepareSalesAmount(OrderSalesItem s
|
, Map<String, BigDecimal> supplierSalesMap
|
, Map<String, BigDecimal> partnerSalesMap
|
, Map<String, BigDecimal> platformSalesMap){//旧
|
String orderItemId = s.getOrderItemId();
|
|
String chargePersons = s.getChargePersons();
|
List<OrderSalesItemChargeDTO> charges = parseArray(chargePersons, OrderSalesItemChargeDTO.class);
|
if(charges != null && charges.size() > 0){
|
for(OrderSalesItemChargeDTO c : charges){
|
BigDecimal amount = c.getAmount() == null ? new BigDecimal(0) : c.getAmount();
|
setChargePersonAmount(orderItemId, c.getPersonInCharge(), supplierSalesMap
|
, partnerSalesMap, platformSalesMap, amount);
|
}
|
} else {
|
BigDecimal amount = s.getAmount() == null ? new BigDecimal(0) : s.getAmount();
|
setChargePersonAmount(orderItemId, s.getPersonInCharge(), supplierSalesMap
|
, partnerSalesMap, platformSalesMap, amount);
|
}
|
}
|
|
private void setChargePersonAmount(String orderItemId, String personInCharge
|
, Map<String, BigDecimal> supplierSalesMap
|
, Map<String, BigDecimal> partnerSalesMap
|
, Map<String, BigDecimal> platformSalesMap
|
, BigDecimal amount){//旧
|
if (Constants.CHARGE_PERSON.supplier.name().equals(personInCharge)) {
|
if (supplierSalesMap == null) {
|
return;
|
}
|
BigDecimal b = supplierSalesMap.get(orderItemId);
|
if (b == null) {
|
b = new BigDecimal(0);
|
}
|
supplierSalesMap.put(orderItemId, b.add(amount));
|
} else if (Constants.CHARGE_PERSON.partner.name().equals(personInCharge)) {
|
if (partnerSalesMap == null) {
|
return;
|
}
|
BigDecimal b = partnerSalesMap.get(orderItemId);
|
if (b == null) {
|
b = new BigDecimal(0);
|
}
|
partnerSalesMap.put(orderItemId, b.add(amount));
|
} else if (Constants.CHARGE_PERSON.platform.name().equals(personInCharge)) {
|
if (platformSalesMap == null) {
|
return;
|
}
|
BigDecimal b = platformSalesMap.get(orderItemId);
|
if (b == null) {
|
b = new BigDecimal(0);
|
}
|
platformSalesMap.put(orderItemId, b.add(amount));
|
}
|
}
|
|
protected BigDecimal getFinalPrice(Long partnerId, Long categoryId, Long flowerId, BigDecimal price, String level){
|
PriceDTO dto = getFinalPriceDTO(partnerId, categoryId, flowerId, price, level);
|
|
return dto.getPrice();
|
}
|
|
protected PriceDTO getFinalPriceDTO(Long partnerId, Long categoryId, Long flowerId, BigDecimal price, String level){
|
PriceDTO dto = new PriceDTO();
|
dto.setOrgPrice(price);
|
|
List<FlowerMarkupPl> plList = markupCacheClient.getMarkupPl();
|
BigDecimal fp = new BigDecimal(0);
|
fp = fp.add(price);
|
|
if(plList != null && plList.size() > 0){//区间加价
|
BigDecimal b = new BigDecimal(0);
|
for(FlowerMarkupPl pl : plList){
|
BigDecimal lowerPrice = pl.getLowerPrice();
|
BigDecimal upperPrice = pl.getUpperPrice();
|
if(lowerPrice == null && upperPrice == null){
|
continue;
|
}
|
|
if (lowerPrice == null) {
|
if(fp.compareTo(upperPrice) <= 0) {
|
b = pl.getFee();
|
break;
|
}
|
} else if (upperPrice == null) {
|
if(fp.compareTo(lowerPrice) > 0){
|
b = pl.getFee();
|
break;
|
}
|
} else if (fp.compareTo(upperPrice) <= 0 && fp.compareTo(lowerPrice) > 0) {
|
b = pl.getFee();
|
break;
|
}
|
}
|
fp = fp.add(getAmount(b));
|
dto.setFirstFee(b);
|
}
|
|
if(partnerId != null){//二次加价和合伙人加价
|
FlowerCategory fc = flowerCategoryMapper.selectById(categoryId);
|
Long fcpId = fc == null ? null : fc.getParentId();
|
FlowerMarkupPsSpCg ppsc = null;
|
if(fcpId != null){//父类加价
|
ppsc = markupCacheClient.getMarkupPsSpCg(partnerId, fcpId);
|
}
|
FlowerMarkupPsSpCg psc = markupCacheClient.getMarkupPsSpCg(partnerId, categoryId);
|
FlowerMarkupPsSp ps = markupCacheClient.getMarkupPsSp(partnerId, flowerId);
|
BigDecimal b = new BigDecimal(0);
|
if(ps != null){
|
b = ps.getFee();
|
} else if (psc != null) {
|
switch (level) {
|
case "A":
|
b = psc.getLevelA();
|
break;
|
case "B":
|
b = psc.getLevelB();
|
break;
|
case "C":
|
b = psc.getLevelC();
|
break;
|
case "D":
|
b = psc.getLevelD();
|
break;
|
case "E":
|
b = psc.getLevelE();
|
break;
|
case "O":
|
b = psc.getLevelO();
|
break;
|
}
|
} else if (ppsc != null) {
|
switch (level) {
|
case "A":
|
b = ppsc.getLevelA();
|
break;
|
case "B":
|
b = ppsc.getLevelB();
|
break;
|
case "C":
|
b = ppsc.getLevelC();
|
break;
|
case "D":
|
b = ppsc.getLevelD();
|
break;
|
case "E":
|
b = ppsc.getLevelE();
|
break;
|
case "O":
|
b = ppsc.getLevelO();
|
break;
|
}
|
}
|
fp = fp.add(getAmount(b));
|
dto.setSecondFee(b);
|
|
FlowerMarkupSpCg fmpsc = null;
|
if(fcpId != null){//父类加价
|
fmpsc = markupCacheClient.getMarkupSpCg(partnerId, fcpId);
|
}
|
FlowerMarkupSpCg sc = markupCacheClient.getMarkupSpCg(partnerId, categoryId);
|
FlowerMarkupSp s = markupCacheClient.getMarkupSp(partnerId, flowerId);
|
b = new BigDecimal(0);
|
if(s != null){
|
b = s.getFee();
|
} else if (sc != null) {
|
switch (level) {
|
case "A":
|
b = sc.getLevelA();
|
break;
|
case "B":
|
b = sc.getLevelB();
|
break;
|
case "C":
|
b = sc.getLevelC();
|
break;
|
case "D":
|
b = sc.getLevelD();
|
break;
|
case "E":
|
b = sc.getLevelE();
|
break;
|
case "O":
|
b = sc.getLevelO();
|
break;
|
}
|
} else if (fmpsc != null) {
|
switch (level) {
|
case "A":
|
b = fmpsc.getLevelA();
|
break;
|
case "B":
|
b = fmpsc.getLevelB();
|
break;
|
case "C":
|
b = fmpsc.getLevelC();
|
break;
|
case "D":
|
b = fmpsc.getLevelD();
|
break;
|
case "E":
|
b = fmpsc.getLevelE();
|
break;
|
case "O":
|
b = fmpsc.getLevelO();
|
break;
|
}
|
}
|
fp = fp.add(getAmount(b));
|
dto.setPartnerFee(b);
|
}
|
|
dto.setPrice(fp);
|
return dto;
|
}
|
|
protected BigDecimal getFinalPriceForPartner(Long partnerId, Long categoryId, Long flowerId, BigDecimal price, String level){
|
|
List<FlowerMarkupPl> plList = markupCacheClient.getMarkupPl();
|
BigDecimal fp = new BigDecimal(0);
|
fp = fp.add(price);
|
|
if(plList != null && plList.size() > 0){//区间加价
|
BigDecimal b = new BigDecimal(0);
|
for(FlowerMarkupPl pl : plList){
|
BigDecimal lowerPrice = pl.getLowerPrice();
|
BigDecimal upperPrice = pl.getUpperPrice();
|
if(lowerPrice == null && upperPrice == null){
|
continue;
|
}
|
|
if (lowerPrice == null) {
|
if(fp.compareTo(upperPrice) <= 0) {
|
b = pl.getFee();
|
break;
|
}
|
} else if (upperPrice == null) {
|
if(fp.compareTo(lowerPrice) > 0){
|
b = pl.getFee();
|
break;
|
}
|
} else if (fp.compareTo(upperPrice) <= 0 && fp.compareTo(lowerPrice) > 0) {
|
b = pl.getFee();
|
break;
|
}
|
}
|
fp = fp.add(getAmount(b));
|
}
|
|
//二次加价
|
FlowerCategory fc = flowerCategoryMapper.selectById(categoryId);
|
Long fcpId = fc == null ? null : fc.getParentId();
|
FlowerMarkupPsSpCg ppsc = null;
|
if(fcpId != null){//父类加价
|
ppsc = markupCacheClient.getMarkupPsSpCg(partnerId, fcpId);
|
}
|
FlowerMarkupPsSpCg psc = markupCacheClient.getMarkupPsSpCg(partnerId, categoryId);
|
FlowerMarkupPsSp ps = markupCacheClient.getMarkupPsSp(partnerId, flowerId);
|
BigDecimal b = new BigDecimal(0);
|
if(ps != null){
|
b = ps.getFee();
|
} else if (psc != null) {
|
switch (level) {
|
case "A":
|
b = psc.getLevelA();
|
break;
|
case "B":
|
b = psc.getLevelB();
|
break;
|
case "C":
|
b = psc.getLevelC();
|
break;
|
case "D":
|
b = psc.getLevelD();
|
break;
|
case "E":
|
b = psc.getLevelE();
|
break;
|
case "O":
|
b = psc.getLevelO();
|
break;
|
}
|
} else if (ppsc != null) {
|
switch (level) {
|
case "A":
|
b = ppsc.getLevelA();
|
break;
|
case "B":
|
b = ppsc.getLevelB();
|
break;
|
case "C":
|
b = ppsc.getLevelC();
|
break;
|
case "D":
|
b = ppsc.getLevelD();
|
break;
|
case "E":
|
b = ppsc.getLevelE();
|
break;
|
case "O":
|
b = ppsc.getLevelO();
|
break;
|
}
|
}
|
fp = fp.add(getAmount(b));
|
|
return fp;
|
}
|
|
protected Long getCurrentCustomerPartner(){
|
Customer p = getCurrentCustomerWithoutCheck();
|
return p == null ? null : p.getPartnerId();
|
}
|
|
protected Customer getCurrentCustomerWithoutCheck(){
|
String userId = SecurityUtils.getUserId();
|
Customer p = customerMapper.selectOne(new QueryWrapper<Customer>()
|
.eq("user_id", userId));
|
|
return p;
|
}
|
|
protected Customer getCurrentCustomer(){
|
Customer p = getCurrentCustomerWithoutCheck();
|
|
if(p == null){
|
throw new ValidationException("客户不存在");
|
}
|
|
return p;
|
}
|
|
/**
|
* 计算会员单价
|
*
|
* @param price
|
* @param member
|
* @return
|
*/
|
protected BigDecimal calculateMemberPrice(BigDecimal price, Member member){
|
if(price == null || member == null){
|
return price;
|
}
|
BigDecimal r = price;
|
|
String discountType = member.getDiscountType();
|
if(Constants.DISCOUNT_TYPE.ratio.name().equals(discountType)){
|
BigDecimal discountRatio = getAmount(member.getDiscountRatio());
|
r = price.multiply(discountRatio).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
} else if (Constants.DISCOUNT_TYPE.amount.name().equals(discountType)){
|
BigDecimal discountAmount = getAmount(member.getDiscountAmount());
|
r = price.subtract(discountAmount);
|
}
|
|
if(r.doubleValue() < 0){
|
r = new BigDecimal(0);
|
}
|
|
return r;
|
}
|
|
protected Customer getCustomerByUserId(String userId){
|
Customer p = customerMapper.selectOne(new QueryWrapper<Customer>()
|
.eq("user_id", userId));
|
if(p == null){
|
throw new ValidationException("客户不存在");
|
}
|
|
return p;
|
}
|
|
protected Customer getCustomer(Long id){
|
Customer p = customerMapper.selectById(id);
|
|
if(p == null){
|
throw new ValidationException("商户不存在");
|
}
|
|
return p;
|
}
|
|
public Partner getCurrentPartner(){
|
String userId = SecurityUtils.getUserId();
|
Partner p = partnerMapper.selectOne(new QueryWrapper<Partner>()
|
.eq("user_id", userId));
|
|
if(p == null){
|
throw new ValidationException("合伙人信息未认证,请到个人中心进行认证");
|
}
|
|
return p;
|
}
|
|
public Supplier getCurrentSupplier(){
|
String userId = SecurityUtils.getUserId();
|
Supplier s = supplierMapper.selectOne(new QueryWrapper<Supplier>()
|
.eq("user_id", userId));
|
if(s == null){
|
throw new ValidationException("供应商信息未认证,请到个人中心进行认证");
|
}
|
|
return s;
|
}
|
|
protected String formatTime(LocalDateTime start, LocalDateTime end){
|
long s = start.toEpochSecond(ZoneOffset.UTC);
|
long e = end.toEpochSecond(ZoneOffset.UTC);
|
|
long du = e - s;
|
long m = du / 60;
|
if(m == 0){
|
return du + "秒";
|
}
|
long dl = du % 60;
|
long h = m / 60;
|
if(h == 0){
|
return m + "分钟" + dl + "秒";
|
}
|
long ml = m % 60;
|
long d = h / 24;
|
if(d == 0){
|
return h + "小时" + ml + "分钟" + dl + "秒";
|
}
|
long hl = h % 24;
|
return d + "天" + hl + "小时" + ml + "分钟" + dl + "秒";
|
}
|
|
public String format(ZonedDateTime dateTime, String format) {
|
if (dateTime == null || format == null) {
|
return null;
|
}
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format).withZone(ZoneId.of("Asia/Shanghai"));
|
return dateTimeFormatter.format(dateTime);
|
}
|
|
public String format(LocalDateTime dateTime, String format) {
|
if (dateTime == null || format == null) {
|
return null;
|
}
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format).withZone(ZoneId.of("Asia/Shanghai"));
|
return dateTimeFormatter.format(dateTime);
|
}
|
|
protected LocalDateTime parseLocalDateTime(final String dateStr, String format) {
|
if (StringUtils.isBlank(dateStr)) {
|
return null;
|
}
|
DateTimeFormatter dateTimeFormatter = BASIC_ISO_DATE;
|
if (StringUtils.isNotBlank(format)) {
|
dateTimeFormatter = DateTimeFormatter.ofPattern(format);
|
}
|
return LocalDateTime.parse(dateStr,dateTimeFormatter);
|
}
|
|
public LocalDate parseLocalDate(final String dateStr){
|
if(StringUtils.isEmpty(dateStr)){
|
return null;
|
}
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
LocalDate date = LocalDate.parse(dateStr, dateTimeFormatter);
|
|
return date;
|
}
|
|
public LocalDateTime parseLocalDateTime(final String dateStr, final boolean isStart) {
|
return parseLocalDateTime(dateStr, isStart, "yyyy-MM-dd");
|
}
|
|
protected LocalDateTime parseLocalDateTime(final String dateStr, final boolean isStart, String format) {
|
LocalDateTime dateTime = null;
|
if (StringUtils.isNotBlank(dateStr)) {
|
DateTimeFormatter dateTimeFormatter = BASIC_ISO_DATE;
|
if (StringUtils.isNotBlank(format)) {
|
dateTimeFormatter = DateTimeFormatter.ofPattern(format);
|
}
|
LocalDate date = LocalDate.parse(dateStr, dateTimeFormatter);
|
if (isStart) {
|
dateTime = date.atTime(0, 0, 0);
|
} else {
|
dateTime = date.atTime(23, 59, 59);
|
}
|
}
|
return dateTime;
|
}
|
|
protected LocalDateTime parseLocalDateTime(final String dateStr, int hour
|
, int minute, int second, long plusDays) {
|
LocalDateTime dateTime = null;
|
if (StringUtils.isNotBlank(dateStr)) {
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
LocalDate date = LocalDate.parse(dateStr, dateTimeFormatter).plusDays(plusDays);
|
dateTime = date.atTime(hour, minute, second);
|
}
|
|
return dateTime;
|
}
|
|
protected LocalDateTime parseLocalDateTime(String dateStr){
|
if(StringUtils.isEmpty(dateStr)){
|
return null;
|
}
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
return LocalDateTime.parse(dateStr, dateTimeFormatter);
|
}
|
|
protected List<String> splitParam(String param) {
|
if (StringUtils.isNotEmpty(param)) {
|
String[] params = param.split(",");
|
List<String> levelList = new ArrayList<>();
|
for (String l : params) {
|
levelList.add(l.trim());
|
}
|
|
return levelList;
|
}
|
|
return null;
|
}
|
|
protected <T> List<T> parseArray(String text, Class<T> clazz) {
|
List<T> result = new ArrayList<>();
|
if(StringUtils.isNotEmpty(text)){
|
try {
|
result = JSON.parseArray(text, clazz);
|
}catch (Exception e){
|
}
|
}
|
|
return result;
|
}
|
|
protected String toJSONString(Object o){
|
try{
|
return JSON.toJSONString(o);
|
}catch (Exception e){
|
}
|
|
return null;
|
}
|
|
protected <T> T parseObject(String text, Class<T> clazz){
|
try{
|
return JSON.parseObject(text, clazz);
|
}catch (Exception e){
|
}
|
|
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);
|
}
|
}
|
}
|
}
|
|
|
}
|