From a339c9b8617163ab705f64d59ef261fc7700f23f Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期三, 11 九月 2024 08:34:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master-v2

---
 src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java        |   11 +++
 src/main/java/com/mzl/flower/service/supplier/SupplierService.java            |   13 ++++
 src/main/resources/mapper/flower/FlowerMarkupPsSpMapper.xml                   |   13 ++++
 src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpQueryDTO.java   |    6 ++
 src/main/java/com/mzl/flower/service/partner/PartnerService.java              |    7 ++
 src/main/java/com/mzl/flower/service/flower/FlowerService.java                |    6 ++
 src/main/java/com/mzl/flower/dto/response/flower/FlowerMarkupSpListDTO.java   |    3 +
 src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupPsSpQueryDTO.java |    6 ++
 src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java                  |    2 
 src/main/java/com/mzl/flower/service/customer/CustomerService.java            |    6 ++
 src/main/java/com/mzl/flower/service/BaseService.java                         |   36 +++++++++++
 src/main/resources/mapper/flower/FlowerMapper.xml                             |    3 +
 src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml                     |   23 +++++++
 13 files changed, 133 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupPsSpQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupPsSpQueryDTO.java
index 9dc2b2d..0c77b88 100644
--- a/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupPsSpQueryDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupPsSpQueryDTO.java
@@ -20,4 +20,10 @@
     @ApiModelProperty(value = "标签")
     private String tags;
 
+    @ApiModelProperty(value = "是否加价")
+    private String isFee;
+
+    @ApiModelProperty(value = "供应商")
+    private String supplierName;
+
 }
diff --git a/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpQueryDTO.java
index 0a3c057..725af56 100644
--- a/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpQueryDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpQueryDTO.java
@@ -20,4 +20,10 @@
     @ApiModelProperty(value = "合伙人ID")
     private Long partnerId;
 
+    @ApiModelProperty(value = "是否加价")
+    private String isFee;
+
+    @ApiModelProperty(value = "供应商")
+    private String supplierName;
+
 }
diff --git a/src/main/java/com/mzl/flower/dto/response/flower/FlowerMarkupSpListDTO.java b/src/main/java/com/mzl/flower/dto/response/flower/FlowerMarkupSpListDTO.java
index 7d98948..94115be 100644
--- a/src/main/java/com/mzl/flower/dto/response/flower/FlowerMarkupSpListDTO.java
+++ b/src/main/java/com/mzl/flower/dto/response/flower/FlowerMarkupSpListDTO.java
@@ -67,4 +67,7 @@
 
     @ApiModelProperty(value = "重量")
     private Double weight;
+
+    @ApiModelProperty(value = "售价")
+    private BigDecimal sellPrice;
 }
diff --git a/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java b/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java
index 6294161..52e4a21 100644
--- a/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/flower/FlowerMapper.java
@@ -55,4 +55,6 @@
     void restoreFlowerBatch(@Param("list") List<Long> ids);
 
     List<Flower> getDeletdFlowByIds(@Param("list") List<Long> ids);
+
+    void updateTypeRankNull(@Param("category") Long category, @Param("level") String level);
 }
diff --git a/src/main/java/com/mzl/flower/service/BaseService.java b/src/main/java/com/mzl/flower/service/BaseService.java
index 68883f6..c5c2d7e 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;
@@ -25,6 +27,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.math.RoundingMode;
@@ -33,10 +39,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
@@ -66,6 +72,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;
@@ -690,4 +706,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 84774d7..1933dc4 100644
--- a/src/main/java/com/mzl/flower/service/customer/CustomerService.java
+++ b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
@@ -20,6 +20,7 @@
 import com.mzl.flower.mapper.partner.PartnerMapper;
 import com.mzl.flower.service.menber.MemberGrowthRecordService;
 import lombok.extern.slf4j.Slf4j;
+import com.mzl.flower.service.BaseService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -40,6 +41,9 @@
     private final PartnerMapper partnerMapper;
     @Resource
     private MemberGrowthRecordService memberGrowthRecordService;
+
+    @Resource
+    private BaseService baseService;
 
     public CustomerService(CustomerMapper customerMapper, PartnerMapper partnerMapper) {
         this.customerMapper = customerMapper;
@@ -223,6 +227,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/flower/FlowerMarkupSpService.java b/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java
index 89b410b..e6d1697 100644
--- a/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java
+++ b/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java
@@ -15,6 +15,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Slf4j
@@ -77,6 +78,11 @@
         if(ll != null && ll.size() > 0){
             for(FlowerMarkupSpListDTO ss : ll){
                 ss.setPrice(getFinalPriceForPartner(dto.getPartnerId(), ss.getCategory(), ss.getFlowerId(), ss.getPrice(), ss.getLevel()));
+                BigDecimal fee = ss.getFee();
+                if (fee == null) {
+                    fee = BigDecimal.ZERO;
+                }
+                ss.setSellPrice(ss.getPrice().add(fee));
             }
         }
 
@@ -90,6 +96,11 @@
         if(ll != null && ll.size() > 0){
             for(FlowerMarkupSpListDTO ss : ll){
                 ss.setPrice(getFinalPriceForPartner(dto.getPartnerId(), ss.getCategory(), ss.getFlowerId(), ss.getPrice(), ss.getLevel()));
+                BigDecimal fee = ss.getFee();
+                if (fee == null) {
+                    fee = BigDecimal.ZERO;
+                }
+                ss.setSellPrice(ss.getPrice().add(fee));
             }
         }
 
diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerService.java b/src/main/java/com/mzl/flower/service/flower/FlowerService.java
index 221d4be..1679d36 100644
--- a/src/main/java/com/mzl/flower/service/flower/FlowerService.java
+++ b/src/main/java/com/mzl/flower/service/flower/FlowerService.java
@@ -139,10 +139,13 @@
         }
         try{
 
+            flowerMapper.updateTypeRankNull(flower.getCategory(),flower.getLevel());
+
             QueryWrapper<Flower> queryWrapper=new QueryWrapper<>();
             queryWrapper.lambda().eq(Flower::getDeleted,false)
                     .eq(Objects.nonNull(flower.getCategory()),Flower::getCategory,flower.getCategory())
                     .eq(StringUtils.isNotEmpty(flower.getLevel()),Flower::getLevel,flower.getLevel())
+                    .eq(Flower::getStatus,"UP")
                     .orderByAsc(Flower::getPrice);
             final List<Flower> flowerList = flowerMapper.selectList(queryWrapper);
 
@@ -453,6 +456,9 @@
             //清除购物车商品
             cartMapper.delete(new QueryWrapper<Cart>().eq("flower_id", id));
         }
+
+        //更新排名
+        updateFlowTypeRank(null,f.getCategory(),f.getLevel());
     }
 
     public void deleteFlower(Long id){
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);
         }
diff --git a/src/main/resources/mapper/flower/FlowerMapper.xml b/src/main/resources/mapper/flower/FlowerMapper.xml
index 64eb0c7..308869c 100644
--- a/src/main/resources/mapper/flower/FlowerMapper.xml
+++ b/src/main/resources/mapper/flower/FlowerMapper.xml
@@ -421,4 +421,7 @@
             #{id}
         </foreach>
     </update>
+    <update id="updateTypeRankNull">
+        update t_flower set type_rank=null where category=#{category} and level=#{level}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/flower/FlowerMarkupPsSpMapper.xml b/src/main/resources/mapper/flower/FlowerMarkupPsSpMapper.xml
index 5690dfd..af658e6 100644
--- a/src/main/resources/mapper/flower/FlowerMarkupPsSpMapper.xml
+++ b/src/main/resources/mapper/flower/FlowerMarkupPsSpMapper.xml
@@ -33,6 +33,19 @@
                 )
             )
         </if>
+        <if test="condition.supplierName != null and condition.supplierName != ''">
+            AND s.name LIKE concat('%', #{condition.supplierName},'%')
+        </if>
+        <if test="condition.isFee != null">
+            <choose>
+                <when test="condition.isFee == 'markup'">
+                    AND sp.fee > 0
+                </when>
+                <otherwise>
+                    AND (sp.fee is null or sp.fee = 0)
+                </otherwise>
+            </choose>
+        </if>
         ORDER BY f.id
     </select>
 
diff --git a/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml b/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml
index 60a976a..cf640fa 100644
--- a/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml
+++ b/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml
@@ -33,6 +33,19 @@
                 )
             )
         </if>
+        <if test="condition.supplierName != null and condition.supplierName != ''">
+            AND s.name LIKE concat('%', #{condition.supplierName},'%')
+        </if>
+        <if test="condition.isFee != null">
+        <choose>
+            <when test="condition.isFee == 'markup'">
+                AND sp.fee > 0
+            </when>
+            <otherwise>
+                AND (sp.fee is null or sp.fee = 0)
+            </otherwise>
+        </choose>
+        </if>
         ORDER BY f.id
     </select>
 
@@ -68,6 +81,16 @@
             )
             )
         </if>
+        <if test="condition.isFee != null">
+            <choose>
+                <when test="condition.isFee == 'markup'">
+                    AND sp.fee > 0
+                </when>
+                <otherwise>
+                    AND (sp.fee is null or sp.fee = 0)
+                </otherwise>
+            </choose>
+        </if>
         ORDER BY f.id
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3