Merge remote-tracking branch 'origin/master'

This commit is contained in:
chc 2024-01-29 18:33:53 +08:00
commit 82d7389092
8 changed files with 43 additions and 21 deletions

View File

@ -25,6 +25,11 @@ public enum PromotionTypeEnum {
*/
public static final PromotionTypeEnum[] haveStockPromotion = new PromotionTypeEnum[]{PINTUAN, SECKILL, KANJIA, POINTS_GOODS};
/**
* 有独立促销库存的活动类型
*/
public static final PromotionTypeEnum[] haveIndependanceStockPromotion = new PromotionTypeEnum[]{SECKILL};
private final String description;
PromotionTypeEnum(String description) {

View File

@ -138,17 +138,18 @@ public class DistributionCashServiceImpl extends ServiceImpl<DistributionCashMap
distribution.setCanRebate(CurrencyUtil.add(distribution.getCanRebate(), distributorCash.getPrice()));
distributorCash.setDistributionCashStatus(WithdrawStatusEnum.FAIL_AUDITING.name());
}
distribution.setCommissionFrozen(CurrencyUtil.sub(distribution.getCommissionFrozen(), distributorCash.getPrice()));
//分销员金额相关处理
distributionService.updateById(distribution);
//修改分销提现申请
boolean bool = this.updateById(distributorCash);
if (bool) {
//组织会员提现审核消息
memberWithdrawalMessage.setMemberId(distribution.getMemberId());
memberWithdrawalMessage.setPrice(distributorCash.getPrice());
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_WITHDRAWAL.name();
rocketMQTemplate.asyncSend(destination, memberWithdrawalMessage, RocketmqSendCallbackBuilder.commonCallback());
}
//if (bool) {
// //组织会员提现审核消息
// memberWithdrawalMessage.setMemberId(distribution.getMemberId());
// memberWithdrawalMessage.setPrice(distributorCash.getPrice());
// String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_WITHDRAWAL.name();
// rocketMQTemplate.asyncSend(destination, memberWithdrawalMessage, RocketmqSendCallbackBuilder.commonCallback());
//}
return distributorCash;
}
throw new ServiceException(ResultCode.DISTRIBUTION_NOT_EXIST);

View File

@ -172,6 +172,13 @@ public class OrderItem extends BaseEntity {
return isRefund;
}
public double getRefundPrice() {
if (refundPrice == null) {
return 0;
}
return refundPrice;
}
public PriceDetailDTO getPriceDetailDTO() {
return JSONUtil.toBean(priceDetail, PriceDetailDTO.class);
}

View File

@ -271,6 +271,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
queryWrapper.eq(Order::getPromotionId, pintuanId);
queryWrapper.nested(i -> i.eq(Order::getPayStatus, PayStatusEnum.PAID.name()).or(j -> j.eq(Order::getOrderStatus,
OrderStatusEnum.PAID.name())));
queryWrapper.ne(Order::getOrderStatus, OrderStatusEnum.CANCELLED.name());
return this.list(queryWrapper);
}
@ -302,7 +303,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
Order order = OperationalJudgment.judgment(this.getBySn(orderSn));
//如果订单促销类型不为空&&订单是拼团订单并且订单未成团则抛出异常
if (OrderPromotionTypeEnum.PINTUAN.name().equals(order.getOrderPromotionType())
&& !CharSequenceUtil.equalsAny(order.getOrderStatus(), OrderStatusEnum.UNDELIVERED.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
&& !CharSequenceUtil.equalsAny(order.getOrderStatus(), OrderStatusEnum.TAKE.name(), OrderStatusEnum.UNDELIVERED.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
throw new ServiceException(ResultCode.ORDER_CAN_NOT_CANCEL);
}
if (CharSequenceUtil.equalsAny(order.getOrderStatus(),
@ -1011,6 +1012,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
//拼团sn=开团订单sn 或者 参团订单的开团订单sn
queryWrapper.and(i -> i.eq(Order::getSn, parentOrderSn)
.or(j -> j.eq(Order::getParentOrderSn, parentOrderSn)));
queryWrapper.ne(Order::getOrderStatus, OrderStatusEnum.CANCELLED.name());
//参团后的订单数人数
return this.list(queryWrapper);
}

View File

@ -195,10 +195,10 @@ public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper,
@Override
public Integer getPromotionGoodsStock(PromotionTypeEnum typeEnum, String promotionId, String skuId) {
String promotionStockKey = PromotionGoodsService.getPromotionGoodsStockCacheKey(typeEnum, promotionId, skuId);
String promotionGoodsStock = stringRedisTemplate.opsForValue().get(promotionStockKey);
Object promotionGoodsStock = cache.get(promotionStockKey);
//库存如果不为空则直接返回
if (promotionGoodsStock != null && CharSequenceUtil.isNotEmpty(promotionGoodsStock)) {
if (promotionGoodsStock != null) {
return Convert.toInt(promotionGoodsStock);
}
//如果为空
@ -213,7 +213,7 @@ public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper,
return 0;
}
//否则写入新的促销商品库存
stringRedisTemplate.opsForValue().set(promotionStockKey, promotionGoods.getQuantity().toString());
cache.put(promotionStockKey, promotionGoods.getQuantity());
return promotionGoods.getQuantity();
}
}
@ -269,7 +269,7 @@ public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper,
updateWrapper.set(PromotionGoods::getQuantity, promotionGoods.getQuantity()).set(PromotionGoods::getNum, promotionGoods.getNum());
this.update(updateWrapper);
stringRedisTemplate.opsForValue().set(promotionStockKey, promotionGoods.getQuantity().toString());
cache.put(promotionStockKey, promotionGoods.getQuantity());
}
}
@ -277,12 +277,14 @@ public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper,
@SystemLogPoint(description = "更新促销活动商品库存", customerLog = "'操作的skuId:['+#skuId+'],修改后的库存:['+#quantity+']'")
public void updatePromotionGoodsStock(String skuId, Integer quantity) {
LambdaQueryWrapper<PromotionGoods> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.notIn(PromotionGoods::getPromotionType, Arrays.stream(PromotionTypeEnum.haveIndependanceStockPromotion).map(Enum::name).collect(Collectors.toList()));
queryWrapper.eq(PromotionGoods::getSkuId, skuId);
this.list(queryWrapper).forEach(promotionGoods -> {
String promotionStockKey = PromotionGoodsService.getPromotionGoodsStockCacheKey(PromotionTypeEnum.valueOf(promotionGoods.getPromotionType()), promotionGoods.getPromotionId(), promotionGoods.getSkuId());
cache.remove(promotionStockKey);
});
LambdaUpdateWrapper<PromotionGoods> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.notIn(PromotionGoods::getPromotionType, Arrays.stream(PromotionTypeEnum.haveIndependanceStockPromotion).map(Enum::name).collect(Collectors.toList()));
updateWrapper.eq(PromotionGoods::getSkuId, skuId);
updateWrapper.set(PromotionGoods::getQuantity, quantity);
this.update(updateWrapper);

View File

@ -393,15 +393,6 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
goodsVO.setGoodsImage(goodsSku.getThumbnail());
goodsVO.setGoodsId(goodsSku.getGoodsId());
goodsVO.setGoodsName(goodsSku.getGoodsName());
String promotionGoodsStockCacheKey = PromotionGoodsService.getPromotionGoodsStockCacheKey(
PromotionTypeEnum.SECKILL,
seckillId, seckillApply.getSkuId());
Object quantity = cache.get(promotionGoodsStockCacheKey);
if (quantity != null) {
goodsVO.setQuantity((Integer) quantity);
} else {
cache.put(promotionGoodsStockCacheKey, seckillApply.getQuantity());
}
seckillGoodsVoS.add(goodsVO);
}
}

View File

@ -15,10 +15,20 @@ public enum WithdrawStatusEnum {
* 审核成功即提现成功
*/
VIA_AUDITING("审核通过"),
/**
* 分销提现
* 审核成功即提现成功
*/
D_VIA_AUDITING("分销提现审核通过"),
/**
* 审核未通过
*/
FAIL_AUDITING("审核未通过"),
/**
* 分销提现
* 审核未通过
*/
D_FAIL_AUDITING("分销提现审核未通过"),
/**
* 提现成功
*/

View File

@ -23,6 +23,10 @@ public enum MemberTagsEnum {
* 会员提现
*/
MEMBER_WITHDRAWAL("会员提现"),
/**
* 会员提现
*/
DISTRIBUTION_WITHDRAWAL("分销提现"),
/**
* 会员信息更改
*/