!118 优化编辑商品时的生成索引和操作促销活动时更新索引促销信息,增加事务监听在事务提交后发
Merge pull request !118 from OceansDeep/feature/pg
This commit is contained in:
commit
0b081c2d85
@ -15,6 +15,11 @@
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-properties-migrator</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.vintage</groupId>
|
||||
<artifactId>junit-vintage-engine</artifactId>
|
||||
@ -161,6 +166,12 @@
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>dysmsapi20170525</artifactId>
|
||||
<version>${aliyun-sdk-dysms-version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>org.jacoco.agent</artifactId>
|
||||
<groupId>org.jacoco</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!--脚本编程-->
|
||||
<dependency>
|
||||
@ -172,6 +183,12 @@
|
||||
<groupId>org.apache.rocketmq</groupId>
|
||||
<artifactId>rocketmq-spring-boot-starter</artifactId>
|
||||
<version>${rocketmq-version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<groupId>com.alibaba</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- token加密 -->
|
||||
<dependency>
|
||||
@ -220,6 +237,10 @@
|
||||
<artifactId>groovy</artifactId>
|
||||
<groupId>org.codehaus.groovy</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>commons-collections4</artifactId>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
@ -248,6 +269,20 @@
|
||||
<groupId>com.alipay.sdk</groupId>
|
||||
<artifactId>alipay-sdk-java</artifactId>
|
||||
<version>${alipay-sdk-version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>bcprov-jdk15on</artifactId>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<groupId>commons-logging</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>xml-apis</artifactId>
|
||||
<groupId>xml-apis</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!--用户端类型处理-->
|
||||
@ -314,6 +349,12 @@
|
||||
<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
|
||||
<artifactId>owasp-java-html-sanitizer</artifactId>
|
||||
<version>${owasp-java-html-sanitizer}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>guava</artifactId>
|
||||
<groupId>com.google.guava</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
@ -33,7 +33,6 @@ public class SnowFlake {
|
||||
*/
|
||||
public static void initialize(long workerId, long datacenterId) {
|
||||
snowflake = IdUtil.getSnowflake(workerId, datacenterId);
|
||||
log.error(workerId+""+datacenterId);
|
||||
}
|
||||
|
||||
public static long getId() {
|
||||
|
@ -0,0 +1,19 @@
|
||||
package cn.lili.modules.goods.event;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
/**
|
||||
* @author paulG
|
||||
* @since 2022/1/19
|
||||
**/
|
||||
@Data
|
||||
public class GeneratorEsGoodsIndexEvent extends ApplicationEvent {
|
||||
|
||||
private String goodsId;
|
||||
|
||||
public GeneratorEsGoodsIndexEvent(Object source, String goodsId) {
|
||||
super(source);
|
||||
this.goodsId = goodsId;
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package cn.lili.modules.goods.listener;
|
||||
|
||||
import cn.lili.common.properties.RocketmqCustomProperties;
|
||||
import cn.lili.modules.goods.event.GeneratorEsGoodsIndexEvent;
|
||||
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
||||
import cn.lili.rocketmq.tags.GoodsTagsEnum;
|
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.event.TransactionPhase;
|
||||
import org.springframework.transaction.event.TransactionalEventListener;
|
||||
|
||||
/**
|
||||
* @author paulG
|
||||
* @since 2022/1/19
|
||||
**/
|
||||
@Component
|
||||
public class GeneratorEsGoodsIndexListener {
|
||||
|
||||
/**
|
||||
* rocketMq
|
||||
*/
|
||||
@Autowired
|
||||
private RocketMQTemplate rocketMQTemplate;
|
||||
/**
|
||||
* rocketMq配置
|
||||
*/
|
||||
@Autowired
|
||||
private RocketmqCustomProperties rocketmqCustomProperties;
|
||||
|
||||
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)
|
||||
public void generatorEsGoodsIndex(GeneratorEsGoodsIndexEvent esGoodsIndexEvent) {
|
||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GENERATOR_GOODS_INDEX.name();
|
||||
//发送mq消息
|
||||
rocketMQTemplate.asyncSend(destination, esGoodsIndexEvent.getGoodsId(), RocketmqSendCallbackBuilder.commonCallback());
|
||||
}
|
||||
|
||||
}
|
@ -383,6 +383,7 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateStock(String goodsId, Integer quantity) {
|
||||
LambdaUpdateWrapper<Goods> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
|
||||
lambdaUpdateWrapper.set(Goods::getQuantity, quantity);
|
||||
|
@ -22,6 +22,7 @@ import cn.lili.modules.goods.entity.vos.GoodsSkuSpecVO;
|
||||
import cn.lili.modules.goods.entity.vos.GoodsSkuVO;
|
||||
import cn.lili.modules.goods.entity.vos.GoodsVO;
|
||||
import cn.lili.modules.goods.entity.vos.SpecValueVO;
|
||||
import cn.lili.modules.goods.event.GeneratorEsGoodsIndexEvent;
|
||||
import cn.lili.modules.goods.mapper.GoodsSkuMapper;
|
||||
import cn.lili.modules.goods.service.CategoryService;
|
||||
import cn.lili.modules.goods.service.GoodsGalleryService;
|
||||
@ -48,10 +49,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.event.TransactionPhase;
|
||||
import org.springframework.transaction.event.TransactionalEventListener;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -109,6 +109,9 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
|
||||
@Autowired
|
||||
private PromotionGoodsService promotionGoodsService;
|
||||
|
||||
@Autowired
|
||||
private ApplicationEventPublisher applicationEventPublisher;
|
||||
|
||||
@Override
|
||||
public void add(List<Map<String, Object>> skuList, Goods goods) {
|
||||
// 检查是否需要生成索引
|
||||
@ -128,6 +131,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(List<Map<String, Object>> skuList, Goods goods, Boolean regeneratorSkuFlag) {
|
||||
// 是否存在规格
|
||||
if (skuList == null || skuList.isEmpty()) {
|
||||
@ -543,15 +547,12 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
|
||||
* @param goods 商品信息
|
||||
*/
|
||||
@Override
|
||||
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)
|
||||
public void generateEs(Goods goods) {
|
||||
// 不生成没有审核通过且没有上架的商品
|
||||
if (!GoodsStatusEnum.UPPER.name().equals(goods.getMarketEnable()) || !GoodsAuthEnum.PASS.name().equals(goods.getAuthFlag())) {
|
||||
return;
|
||||
}
|
||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.GENERATOR_GOODS_INDEX.name();
|
||||
//发送mq消息
|
||||
rocketMQTemplate.asyncSend(destination, goods.getId(), RocketmqSendCallbackBuilder.commonCallback());
|
||||
applicationEventPublisher.publishEvent(new GeneratorEsGoodsIndexEvent("生成商品索引事件", goods.getId()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -577,7 +578,8 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper, GoodsSku> i
|
||||
* @param skuList sku列表
|
||||
* @param goods 商品信息
|
||||
*/
|
||||
private List<GoodsSku> addGoodsSku(List<Map<String, Object>> skuList, Goods goods) {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
List<GoodsSku> addGoodsSku(List<Map<String, Object>> skuList, Goods goods) {
|
||||
List<GoodsSku> skus = new ArrayList<>();
|
||||
for (Map<String, Object> skuVO : skuList) {
|
||||
Map<String, Object> resultMap = this.add(skuVO, goods);
|
||||
|
@ -0,0 +1,19 @@
|
||||
package cn.lili.modules.promotion.event;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
/**
|
||||
* @author paulG
|
||||
* @since 2022/1/19
|
||||
**/
|
||||
@Data
|
||||
public class UpdateEsGoodsIndexPromotionsEvent extends ApplicationEvent {
|
||||
|
||||
private String promotionsJsonStr;
|
||||
|
||||
public UpdateEsGoodsIndexPromotionsEvent(Object source, String promotionsJsonStr) {
|
||||
super(source);
|
||||
this.promotionsJsonStr = promotionsJsonStr;
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package cn.lili.modules.promotion.listener;
|
||||
|
||||
import cn.lili.common.properties.RocketmqCustomProperties;
|
||||
import cn.lili.modules.promotion.event.UpdateEsGoodsIndexPromotionsEvent;
|
||||
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
|
||||
import cn.lili.rocketmq.tags.GoodsTagsEnum;
|
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.event.TransactionPhase;
|
||||
import org.springframework.transaction.event.TransactionalEventListener;
|
||||
|
||||
/**
|
||||
* @author paulG
|
||||
* @since 2022/1/19
|
||||
**/
|
||||
@Component
|
||||
public class UpdateEsGoodsIndexPromotionsListener {
|
||||
|
||||
/**
|
||||
* rocketMq
|
||||
*/
|
||||
@Autowired
|
||||
private RocketMQTemplate rocketMQTemplate;
|
||||
/**
|
||||
* rocketMq配置
|
||||
*/
|
||||
@Autowired
|
||||
private RocketmqCustomProperties rocketmqCustomProperties;
|
||||
|
||||
|
||||
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, fallbackExecution = true)
|
||||
public void updateEsGoodsIndexPromotions(UpdateEsGoodsIndexPromotionsEvent event) {
|
||||
//更新商品促销消息
|
||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name();
|
||||
//发送mq消息
|
||||
rocketMQTemplate.asyncSend(destination, event.getPromotionsJsonStr(), RocketmqSendCallbackBuilder.commonCallback());
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -10,6 +10,7 @@ import cn.lili.modules.promotion.entity.dos.BasePromotions;
|
||||
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
|
||||
import cn.lili.modules.promotion.entity.dto.search.BasePromotionsSearchParams;
|
||||
import cn.lili.modules.promotion.entity.enums.PromotionsScopeTypeEnum;
|
||||
import cn.lili.modules.promotion.event.UpdateEsGoodsIndexPromotionsEvent;
|
||||
import cn.lili.modules.promotion.service.AbstractPromotionsService;
|
||||
import cn.lili.modules.promotion.service.PromotionGoodsService;
|
||||
import cn.lili.modules.promotion.tools.PromotionTools;
|
||||
@ -23,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
@ -51,6 +53,9 @@ public abstract class AbstractPromotionsServiceImpl<M extends BaseMapper<T>, T e
|
||||
@Autowired
|
||||
private RocketMQTemplate rocketMQTemplate;
|
||||
|
||||
@Autowired
|
||||
private ApplicationEventPublisher applicationEventPublisher;
|
||||
|
||||
/**
|
||||
* 通用促销保存
|
||||
* 调用顺序:
|
||||
@ -263,10 +268,7 @@ public abstract class AbstractPromotionsServiceImpl<M extends BaseMapper<T>, T e
|
||||
map.put("promotionsType", promotions.getClass().getName());
|
||||
// 促销实体
|
||||
map.put("promotions", promotions);
|
||||
//更新商品促销消息
|
||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name();
|
||||
//发送mq消息
|
||||
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(map), RocketmqSendCallbackBuilder.commonCallback());
|
||||
applicationEventPublisher.publishEvent(new UpdateEsGoodsIndexPromotionsEvent("更新商品索引促销事件", JSONUtil.toJsonStr(map)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ import cn.lili.modules.promotion.service.CouponActivityItemService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -37,6 +38,7 @@ public class CouponActivityItemServiceImpl extends ServiceImpl<CouponActivityIte
|
||||
* @param couponIds 优惠券id集合
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public void removeByCouponId(List<String> couponIds) {
|
||||
this.remove(new LambdaQueryWrapper<CouponActivityItem>()
|
||||
.in(CouponActivityItem::getCouponId, couponIds));
|
||||
|
@ -23,6 +23,7 @@ import cn.lili.modules.promotion.tools.PromotionTools;
|
||||
import groovy.util.logging.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -140,6 +141,7 @@ public class CouponActivityServiceImpl extends AbstractPromotionsServiceImpl<Cou
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean updatePromotionsGoods(CouponActivity couponActivity) {
|
||||
boolean result = super.updatePromotionsGoods(couponActivity);
|
||||
if (couponActivity instanceof CouponActivityDTO
|
||||
@ -189,7 +191,8 @@ public class CouponActivityServiceImpl extends AbstractPromotionsServiceImpl<Cou
|
||||
* @param memberList 用户列表
|
||||
* @param couponActivityItems 优惠券列表
|
||||
*/
|
||||
private void sendCoupon(List<Map<String, Object>> memberList, List<CouponActivityItem> couponActivityItems) {
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
void sendCoupon(List<Map<String, Object>> memberList, List<CouponActivityItem> couponActivityItems) {
|
||||
|
||||
for (CouponActivityItem couponActivityItem : couponActivityItems) {
|
||||
//获取优惠券
|
||||
|
@ -77,6 +77,7 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMappe
|
||||
* @param receiveNum 领取数量
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public void receiveCoupon(String couponId, Integer receiveNum) {
|
||||
Coupon coupon = this.getById(couponId);
|
||||
if (coupon == null) {
|
||||
@ -87,6 +88,7 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMappe
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean removePromotions(List<String> ids) {
|
||||
//删除优惠券信息
|
||||
this.memberCouponService.closeMemberCoupon(ids);
|
||||
@ -103,6 +105,7 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMappe
|
||||
* @param usedNum 使用数量
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public void usedCoupon(String couponId, Integer usedNum) {
|
||||
Coupon coupon = this.getById(couponId);
|
||||
if (coupon == null) {
|
||||
@ -155,6 +158,7 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMappe
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean updateStatus(List<String> ids, Long startTime, Long endTime) {
|
||||
List<Coupon> list = this.list(new LambdaQueryWrapper<Coupon>().in(Coupon::getId, ids).eq(Coupon::getRangeDayType, CouponRangeDayEnum.DYNAMICTIME.name()));
|
||||
if (!list.isEmpty()) {
|
||||
@ -220,6 +224,7 @@ public class CouponServiceImpl extends AbstractPromotionsServiceImpl<CouponMappe
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean updatePromotionsGoods(Coupon promotions) {
|
||||
boolean result = super.updatePromotionsGoods(promotions);
|
||||
if (!PromotionsStatusEnum.CLOSE.name().equals(promotions.getPromotionStatus()) &&
|
||||
|
@ -109,6 +109,7 @@ public class FullDiscountServiceImpl extends AbstractPromotionsServiceImpl<FullD
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public boolean updatePromotionsGoods(FullDiscount promotions) {
|
||||
boolean result = super.updatePromotionsGoods(promotions);
|
||||
if (!PromotionsStatusEnum.CLOSE.name().equals(promotions.getPromotionStatus())
|
||||
|
@ -144,6 +144,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void addSeckillApply(String seckillId, String storeId, List<SeckillApplyVO> seckillApplyList) {
|
||||
Seckill seckill = this.seckillService.getById(seckillId);
|
||||
if (seckill == null) {
|
||||
|
@ -39,9 +39,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 秒杀活动业务层实现
|
||||
@ -153,19 +151,7 @@ public class SeckillServiceImpl extends AbstractPromotionsServiceImpl<SeckillMap
|
||||
}
|
||||
}
|
||||
if (!seckillApplies.isEmpty()) {
|
||||
log.info("更新限时抢购商品状态:{}", seckill);
|
||||
String promotionKey = PromotionTypeEnum.SECKILL.name() + "-" + seckill.getId();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
// es促销key
|
||||
map.put("esPromotionKey", promotionKey);
|
||||
// 促销类型全路径名
|
||||
map.put("promotionsType", Seckill.class.getName());
|
||||
// 促销实体
|
||||
map.put("promotions", seckill);
|
||||
//更新商品促销消息
|
||||
String destination = rocketmqCustomProperties.getGoodsTopic() + ":" + GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name();
|
||||
//发送mq消息
|
||||
rocketMQTemplate.asyncSend(destination, JSONUtil.toJsonStr(map), RocketmqSendCallbackBuilder.commonCallback());
|
||||
this.updateEsGoodsIndex(seckill);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
16
pom.xml
16
pom.xml
@ -21,18 +21,18 @@
|
||||
<revision>4.2.3</revision>
|
||||
<docker-registry>registry.cn-beijing.aliyuncs.com/lili-images</docker-registry>
|
||||
<images-version>1</images-version>
|
||||
<alipay-sdk-version>4.13.40.ALL</alipay-sdk-version>
|
||||
<mysql-connector-version>5.1.48</mysql-connector-version>
|
||||
<alipay-sdk-version>4.22.17.ALL</alipay-sdk-version>
|
||||
<mysql-connector-version>8.0.27</mysql-connector-version>
|
||||
<mybatis-plus-version>3.4.3.4</mybatis-plus-version>
|
||||
<Hutool-version>5.7.16</Hutool-version>
|
||||
<Hutool-version>5.7.18</Hutool-version>
|
||||
<TinyPinyin-verions>2.0.3.RELEASE</TinyPinyin-verions>
|
||||
<jasypt-version>3.0.0</jasypt-version>
|
||||
<neetl-version>2.9.10</neetl-version>
|
||||
<lombok-version>1.18.22</lombok-version>
|
||||
<aliyun-version>4.5.18</aliyun-version>
|
||||
<aliyun-sdk-oss-version>3.11.1</aliyun-sdk-oss-version>
|
||||
<aliyun-sdk-dysms-version>2.0.1</aliyun-sdk-dysms-version>
|
||||
<rocketmq-version>2.1.1</rocketmq-version>
|
||||
<aliyun-sdk-dysms-version>2.0.8</aliyun-sdk-dysms-version>
|
||||
<rocketmq-version>2.2.1</rocketmq-version>
|
||||
<jwt-version>0.10.7</jwt-version>
|
||||
<antlr4-runtime-version>4.7.2</antlr4-runtime-version>
|
||||
<sharding-jdbc-version>4.0.0</sharding-jdbc-version>
|
||||
@ -48,12 +48,12 @@
|
||||
<de.codecentric>2.3.1</de.codecentric>
|
||||
<userAgentUtils>1.21</userAgentUtils>
|
||||
<interceptor-api>1.2</interceptor-api>
|
||||
<poi-version>4.1.2</poi-version>
|
||||
<poi-ooxml-version>4.1.2</poi-ooxml-version>
|
||||
<poi-version>5.1.0</poi-version>
|
||||
<poi-ooxml-version>5.1.0</poi-ooxml-version>
|
||||
<logstash-logback-encoder>6.6</logstash-logback-encoder>
|
||||
<zxing>3.4.1</zxing>
|
||||
<slf4j-api>1.7.28</slf4j-api>
|
||||
<xk-time>2.2.0</xk-time>
|
||||
<xk-time>3.2.3</xk-time>
|
||||
<commons-text>1.4</commons-text>
|
||||
<enjoy.version>4.3</enjoy.version>
|
||||
<xxl-job>2.3.0</xxl-job>
|
||||
|
Loading…
x
Reference in New Issue
Block a user