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[] haveStockPromotion = new PromotionTypeEnum[]{PINTUAN, SECKILL, KANJIA, POINTS_GOODS};
/**
* 有独立促销库存的活动类型
*/
public static final PromotionTypeEnum[] haveIndependanceStockPromotion = new PromotionTypeEnum[]{SECKILL};
private final String description; private final String description;
PromotionTypeEnum(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())); distribution.setCanRebate(CurrencyUtil.add(distribution.getCanRebate(), distributorCash.getPrice()));
distributorCash.setDistributionCashStatus(WithdrawStatusEnum.FAIL_AUDITING.name()); distributorCash.setDistributionCashStatus(WithdrawStatusEnum.FAIL_AUDITING.name());
} }
distribution.setCommissionFrozen(CurrencyUtil.sub(distribution.getCommissionFrozen(), distributorCash.getPrice()));
//分销员金额相关处理 //分销员金额相关处理
distributionService.updateById(distribution); distributionService.updateById(distribution);
//修改分销提现申请 //修改分销提现申请
boolean bool = this.updateById(distributorCash); boolean bool = this.updateById(distributorCash);
if (bool) { //if (bool) {
//组织会员提现审核消息 // //组织会员提现审核消息
memberWithdrawalMessage.setMemberId(distribution.getMemberId()); // memberWithdrawalMessage.setMemberId(distribution.getMemberId());
memberWithdrawalMessage.setPrice(distributorCash.getPrice()); // memberWithdrawalMessage.setPrice(distributorCash.getPrice());
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_WITHDRAWAL.name(); // String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_WITHDRAWAL.name();
rocketMQTemplate.asyncSend(destination, memberWithdrawalMessage, RocketmqSendCallbackBuilder.commonCallback()); // rocketMQTemplate.asyncSend(destination, memberWithdrawalMessage, RocketmqSendCallbackBuilder.commonCallback());
} //}
return distributorCash; return distributorCash;
} }
throw new ServiceException(ResultCode.DISTRIBUTION_NOT_EXIST); throw new ServiceException(ResultCode.DISTRIBUTION_NOT_EXIST);

View File

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

View File

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

View File

@ -393,15 +393,6 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
goodsVO.setGoodsImage(goodsSku.getThumbnail()); goodsVO.setGoodsImage(goodsSku.getThumbnail());
goodsVO.setGoodsId(goodsSku.getGoodsId()); goodsVO.setGoodsId(goodsSku.getGoodsId());
goodsVO.setGoodsName(goodsSku.getGoodsName()); 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); seckillGoodsVoS.add(goodsVO);
} }
} }

View File

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

View File

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