From ae1471f378f399f76518539ec8992e64a3673436 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期三, 08 一月 2025 15:26:06 +0800
Subject: [PATCH] 1.订单提交:订单最小金额配置

---
 src/main/java/com/mzl/flower/service/BaseService.java |   69 +++++++++++++++++++++++++++++-----
 1 files changed, 58 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/BaseService.java b/src/main/java/com/mzl/flower/service/BaseService.java
index b796271..def7248 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;
@@ -16,15 +18,22 @@
 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.entity.supplier.SupplierSub;
 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.supplier.SupplierSubMapper;
 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 org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -33,10 +42,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
@@ -47,6 +56,9 @@
 
     @Autowired
     protected SupplierMapper supplierMapper;
+
+    @Autowired
+    protected SupplierSubMapper supplierSubMapper;
 
     @Autowired
     protected PartnerMapper partnerMapper;
@@ -66,6 +78,16 @@
     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;
@@ -127,12 +149,14 @@
             BigDecimal feePlatformPack = getAmount(s.getFeePlatformPack());
             BigDecimal feePlatformCheck = getAmount(s.getFeePlatformCheck());
             BigDecimal feePlatformTransport = getAmount(s.getFeePlatformTransport());
+            BigDecimal feePackingTransport = getAmount(s.getFeePackingTransport());
 
             BigDecimal b = platformSalesMap.get(orderItemId);
             if (b == null) {
                 b = new BigDecimal(0);
             }
-            b = b.add(feePlatform).add(feePlatformPack).add(feePlatformCheck).add(feePlatformTransport);
+            b = b.add(feePlatform).add(feePlatformPack).add(feePlatformCheck)
+                    .add(feePlatformTransport).add(feePackingTransport);
             platformSalesMap.put(orderItemId, b);
         }
     }
@@ -235,7 +259,7 @@
                     break;
                 }
             }
-            fp = fp.add(b);
+            fp = fp.add(getAmount(b));
             dto.setFirstFee(b);
         }
 
@@ -294,7 +318,7 @@
                         break;
                 }
             }
-            fp = fp.add(b);
+            fp = fp.add(getAmount(b));
             dto.setSecondFee(b);
 
             FlowerMarkupSpCg fmpsc = null;
@@ -349,7 +373,7 @@
                         break;
                 }
             }
-            fp = fp.add(b);
+            fp = fp.add(getAmount(b));
             dto.setPartnerFee(b);
         }
 
@@ -387,7 +411,7 @@
                     break;
                 }
             }
-            fp = fp.add(b);
+            fp = fp.add(getAmount(b));
         }
 
         //二次加价
@@ -445,7 +469,7 @@
                     break;
             }
         }
-        fp = fp.add(b);
+        fp = fp.add(getAmount(b));
 
         return fp;
     }
@@ -534,14 +558,19 @@
         return p;
     }
 
-    public Supplier getCurrentSupplier(){
+    public Supplier getCurrentSupplier() {
         String userId = SecurityUtils.getUserId();
         Supplier s = supplierMapper.selectOne(new QueryWrapper<Supplier>()
                 .eq("user_id", userId));
-        if(s == null){
-            throw new ValidationException("供应商信息未认证,请到个人中心进行认证");
+        if (s == null) {
+            SupplierSub sub = supplierSubMapper.getCurrentSupplier(SecurityUtils.getUserId());
+            if (!ObjectUtils.isEmpty(sub)) {
+                s = supplierMapper.selectById(sub.getSupplierId());
+                return s;
+            } else {
+                throw new ValidationException("供应商信息未认证,请到个人中心进行认证");
+            }
         }
-
         return s;
     }
 
@@ -690,4 +719,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);
+                }
+            }
+        }
+    }
+
+
 }

--
Gitblit v1.9.3