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