yshop2.0.1,优化拼团及其修复推广人订单等

This commit is contained in:
hupeng
2020-04-11 17:49:09 +08:00
parent 72052c959b
commit 47d18d1c8b
7 changed files with 62 additions and 7 deletions

View File

@ -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`
ADD COLUMN `is_del` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '删除状态' AFTER `add_time`

View File

@ -1,3 +1,5 @@
新项目 直接导入yshop2.1.sql即可
2.0升级到2.1直接把yshop2.1升级sql.txt里面sql语句运行即可
2.0.1:yx_cache表修改为yx_wechat_menu表

View File

@ -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<String, String> 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;
}
}

View File

@ -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<String, String> redisTemplate;
private RedisConfigProperties redisConfigProperties;
private YxStoreOrderService storeOrderService;
private YxStorePinkService storePinkService;
public RedisKeyExpirationListener(RedisTemplate<String, String> 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.<YxStorePink>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);
}
}
}
}

View File

@ -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<YxStorePinkMapper, Y
@Autowired
private YxUserService userService;
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private StorePinkMap pinkMap;
@ -487,6 +495,9 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
YxStoreCombinationQueryVo combinationQueryVo = combinationService
.getYxStoreCombinationById(order.getCombinationId());
order = storeOrderService.handleOrder(order);
int pinkCount = yxStorePinkMapper.selectCount(Wrappers.<YxStorePink>lambdaQuery()
.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<YxStorePinkMapper, Y
storePink.setPid(queryVo.getProductId());
storePink.setPrice(queryVo.getProductInfo().getPrice());
}
int nowTime = OrderUtil.getSecondTimestampTwo();
int stopTime = nowTime +(combinationQueryVo.getEffectiveTime()*3600);
storePink.setPeople(combinationQueryVo.getPeople());
storePink.setStopTime(OrderUtil.getSecondTimestampTwo()
+(combinationQueryVo.getEffectiveTime()*3600)+"");
storePink.setAddTime(OrderUtil.getSecondTimestampTwo()+"");
storePink.setStopTime(stopTime+"");
storePink.setAddTime(nowTime+"");
if(order.getPinkId() > 0){
if(getIsPinkUid(order.getPinkId(),order.getUid()) > 0) return;
storePink.setKId(order.getPinkId());
@ -532,6 +544,12 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
yxStoreOrder.setPinkId(storePink.getId());
yxStoreOrder.setId(order.getId());
storeOrderService.updateById(yxStoreOrder);
//开团加入队列
String redisKey = String.valueOf(StrUtil.format("{}{}",
ShopConstants.REDIS_PINK_CANCEL_KEY, storePink.getId()));
redisTemplate.opsForValue().set(redisKey, "1" , stopTime, TimeUnit.SECONDS);
}
//todo 模板消息

View File

@ -8,8 +8,10 @@
*/
package co.yixiang.modules.user.service.impl;
import co.yixiang.enums.BillDetailEnum;
import co.yixiang.enums.BillEnum;
import co.yixiang.enums.BillInfoEnum;
import co.yixiang.modules.activity.entity.YxStorePink;
import co.yixiang.modules.user.entity.YxUserBill;
import co.yixiang.modules.user.mapper.YxUserBillMapper;
import co.yixiang.modules.user.mapping.BiillMap;
@ -22,6 +24,7 @@ import co.yixiang.modules.user.web.vo.YxUserBillQueryVo;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.web.vo.Paging;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -80,7 +83,10 @@ public class YxUserBillServiceImpl extends BaseServiceImpl<YxUserBillMapper, YxU
// wrapperT.in("uid",uid).eq("type","brokerage")
// .eq("category","now_money");
int count = (int)pageModel.getTotal();
int count = yxUserBillMapper.selectCount(Wrappers.<YxUserBill>lambdaQuery()
.eq(YxUserBill::getUid,uid)
.eq(YxUserBill::getType, BillDetailEnum.TYPE_2.getValue())
.eq(YxUserBill::getCategory,BillDetailEnum.CATEGORY_1.getValue()));
List<BillOrderDTO> listT = new ArrayList<>();
for (String str : list) {
BillOrderDTO billOrderDTO = new BillOrderDTO();

View File

@ -24,6 +24,11 @@ public interface ShopConstants {
*/
String REDIS_ORDER_OUTTIME_UNCONFIRM = "order:unconfirm:";
/**
* redis拼团key
*/
String REDIS_PINK_CANCEL_KEY = "pink:cancel:";
/**
* 微信支付service
*/