From 47d18d1c8ba3ffe82fce617e2148bdef97a55c26 Mon Sep 17 00:00:00 2001 From: hupeng Date: Sat, 11 Apr 2020 17:49:09 +0800 Subject: [PATCH] =?UTF-8?q?yshop2.0.1,=E4=BC=98=E5=8C=96=E6=8B=BC=E5=9B=A2?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E4=BF=AE=E5=A4=8D=E6=8E=A8=E5=B9=BF=E4=BA=BA?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/yshop2.1升级sql.txt | 3 ++- sql/数据库说明.txt | 2 ++ .../yixiang/config/RedisListenerConfig.java | 4 +++- .../listener/RedisKeyExpirationListener.java | 23 +++++++++++++++++- .../service/impl/YxStorePinkServiceImpl.java | 24 ++++++++++++++++--- .../service/impl/YxUserBillServiceImpl.java | 8 ++++++- .../co/yixiang/constant/ShopConstants.java | 5 ++++ 7 files changed, 62 insertions(+), 7 deletions(-) diff --git a/sql/yshop2.1升级sql.txt b/sql/yshop2.1升级sql.txt index f1c5dd19..4b99ab42 100644 --- a/sql/yshop2.1升级sql.txt +++ b/sql/yshop2.1升级sql.txt @@ -25,4 +25,5 @@ ALTER TABLE `yx_store_seckill` ADD COLUMN `time_id` int(10) UNSIGNED NULL DEFAULT 0 COMMENT '时间段id' AFTER `start_time_date` ALTER TABLE `yx_store_category` -ADD COLUMN `is_del` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '删除状态' AFTER `add_time` \ No newline at end of file +ADD COLUMN `is_del` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '删除状态' AFTER `add_time` + diff --git a/sql/数据库说明.txt b/sql/数据库说明.txt index a3953b9c..efa0c8cf 100644 --- a/sql/数据库说明.txt +++ b/sql/数据库说明.txt @@ -1,3 +1,5 @@ 新项目 直接导入yshop2.1.sql即可 2.0升级到2.1,直接把yshop2.1升级sql.txt里面sql语句运行即可 +2.0.1:yx_cache表修改为yx_wechat_menu表 + diff --git a/yshop-api/src/main/java/co/yixiang/config/RedisListenerConfig.java b/yshop-api/src/main/java/co/yixiang/config/RedisListenerConfig.java index f74b2e5a..549b5679 100644 --- a/yshop-api/src/main/java/co/yixiang/config/RedisListenerConfig.java +++ b/yshop-api/src/main/java/co/yixiang/config/RedisListenerConfig.java @@ -10,6 +10,7 @@ package co.yixiang.config; import cn.hutool.core.util.StrUtil; import co.yixiang.listener.RedisKeyExpirationListener; +import co.yixiang.modules.activity.service.YxStorePinkService; import co.yixiang.modules.order.service.YxStoreOrderService; import lombok.AllArgsConstructor; import org.springframework.context.annotation.Bean; @@ -32,6 +33,7 @@ public class RedisListenerConfig { private final RedisTemplate redisTemplate; private final RedisConfigProperties redisConfigProperties; private final YxStoreOrderService storeOrderService; + private final YxStorePinkService storePinkService; @Bean RedisMessageListenerContainer container(RedisConnectionFactory factory) { @@ -39,7 +41,7 @@ public class RedisListenerConfig { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(factory); container.addMessageListener(new RedisKeyExpirationListener(redisTemplate,redisConfigProperties - ,storeOrderService), new PatternTopic(topic)); + ,storeOrderService,storePinkService), new PatternTopic(topic)); return container; } } diff --git a/yshop-api/src/main/java/co/yixiang/listener/RedisKeyExpirationListener.java b/yshop-api/src/main/java/co/yixiang/listener/RedisKeyExpirationListener.java index 8c1b57a7..ef0f2f4c 100644 --- a/yshop-api/src/main/java/co/yixiang/listener/RedisKeyExpirationListener.java +++ b/yshop-api/src/main/java/co/yixiang/listener/RedisKeyExpirationListener.java @@ -11,9 +11,12 @@ package co.yixiang.listener; import cn.hutool.core.util.StrUtil; import co.yixiang.constant.ShopConstants; import co.yixiang.config.RedisConfigProperties; +import co.yixiang.modules.activity.entity.YxStorePink; +import co.yixiang.modules.activity.service.YxStorePinkService; import co.yixiang.modules.order.entity.YxStoreOrder; import co.yixiang.modules.order.service.YxStoreOrderService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.connection.MessageListener; @@ -33,13 +36,16 @@ public class RedisKeyExpirationListener implements MessageListener { private RedisTemplate redisTemplate; private RedisConfigProperties redisConfigProperties; private YxStoreOrderService storeOrderService; + private YxStorePinkService storePinkService; public RedisKeyExpirationListener(RedisTemplate redisTemplate, RedisConfigProperties redisConfigProperties, - YxStoreOrderService storeOrderService){ + YxStoreOrderService storeOrderService, + YxStorePinkService storePinkService){ this.redisTemplate = redisTemplate; this.redisConfigProperties = redisConfigProperties; this.storeOrderService = storeOrderService; + this.storePinkService = storePinkService; } @Override public void onMessage(Message message, byte[] bytes) { @@ -75,6 +81,21 @@ public class RedisKeyExpirationListener implements MessageListener { log.info("订单id:{},自动收货成功",body); } } + + //拼团过期取消 + if(body.contains(ShopConstants.REDIS_PINK_CANCEL_KEY)) { + body = body.replace(ShopConstants.REDIS_PINK_CANCEL_KEY, ""); + log.info("body:{}",body); + String pinkId = body; + YxStorePink storePink = storePinkService.getOne(Wrappers.lambdaQuery() + .eq(YxStorePink::getId,pinkId) + .eq(YxStorePink::getStatus,1).eq(YxStorePink::getIsRefund,0)); + //取消拼团 + if(storePink != null){ + storePinkService.removePink(storePink.getUid(),storePink.getCid(),storePink.getId()); + log.info("拼团订单id:{},未在规定时间完成取消成功",body); + } + } } } diff --git a/yshop-api/src/main/java/co/yixiang/modules/activity/service/impl/YxStorePinkServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/activity/service/impl/YxStorePinkServiceImpl.java index c074e195..f92b1437 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/activity/service/impl/YxStorePinkServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/activity/service/impl/YxStorePinkServiceImpl.java @@ -10,8 +10,10 @@ package co.yixiang.modules.activity.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import co.yixiang.common.service.impl.BaseServiceImpl; import co.yixiang.common.web.vo.Paging; +import co.yixiang.constant.ShopConstants; import co.yixiang.exception.ErrorRequestException; import co.yixiang.modules.activity.entity.YxStorePink; import co.yixiang.modules.activity.mapper.YxStoreCombinationMapper; @@ -35,16 +37,19 @@ import co.yixiang.utils.OrderUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.AllArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.*; +import java.util.concurrent.TimeUnit; /** @@ -72,6 +77,9 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl redisTemplate; + @Autowired private StorePinkMap pinkMap; @@ -487,6 +495,9 @@ public class YxStorePinkServiceImpl extends BaseServiceImpllambdaQuery() + .eq(YxStorePink::getOrderId,order.getOrderId())); + if(pinkCount > 0) return; if(ObjectUtil.isNotNull(combinationQueryVo)){ YxStorePink storePink = new YxStorePink(); storePink.setUid(order.getUid()); @@ -501,10 +512,11 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl 0){ if(getIsPinkUid(order.getPinkId(),order.getUid()) > 0) return; storePink.setKId(order.getPinkId()); @@ -532,6 +544,12 @@ public class YxStorePinkServiceImpl extends BaseServiceImpllambdaQuery() + .eq(YxUserBill::getUid,uid) + .eq(YxUserBill::getType, BillDetailEnum.TYPE_2.getValue()) + .eq(YxUserBill::getCategory,BillDetailEnum.CATEGORY_1.getValue())); List listT = new ArrayList<>(); for (String str : list) { BillOrderDTO billOrderDTO = new BillOrderDTO(); diff --git a/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java b/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java index dd6bdc11..c8df8fac 100644 --- a/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java +++ b/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java @@ -24,6 +24,11 @@ public interface ShopConstants { */ String REDIS_ORDER_OUTTIME_UNCONFIRM = "order:unconfirm:"; + /** + * redis拼团key + */ + String REDIS_PINK_CANCEL_KEY = "pink:cancel:"; + /** * 微信支付service */