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