commit
9eba3287b2
@ -0,0 +1,46 @@
|
||||
package cn.lili.event.impl;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.lili.event.OrderStatusChangeEvent;
|
||||
import cn.lili.modules.order.order.entity.dos.Order;
|
||||
import cn.lili.modules.order.order.entity.dto.OrderMessage;
|
||||
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
|
||||
import cn.lili.modules.order.order.service.OrderService;
|
||||
import cn.lili.modules.promotion.service.MemberCouponService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 会员优惠券执行类
|
||||
*
|
||||
* @author paulG
|
||||
* @since 2022/8/12
|
||||
**/
|
||||
@Service
|
||||
public class MemberCouponExecute implements OrderStatusChangeEvent {
|
||||
|
||||
/**
|
||||
* 订单
|
||||
*/
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
|
||||
@Autowired
|
||||
private MemberCouponService memberCouponService;
|
||||
|
||||
@Override
|
||||
public void orderChange(OrderMessage orderMessage) {
|
||||
// 订单取消返还优惠券
|
||||
if (orderMessage.getNewStatus() == OrderStatusEnum.CANCELLED) {
|
||||
Order order = orderService.getBySn(orderMessage.getOrderSn());
|
||||
if (CharSequenceUtil.isNotEmpty(order.getUseStoreMemberCouponIds())) {
|
||||
memberCouponService.recoveryMemberCoupon(ListUtil.toList(order.getUseStoreMemberCouponIds().split(",")));
|
||||
} else if (CharSequenceUtil.isNotEmpty(order.getUsePlatformMemberCouponId())) {
|
||||
memberCouponService.recoveryMemberCoupon(ListUtil.toList(order.getUsePlatformMemberCouponId().split(",")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ import cn.lili.common.enums.ClientTypeEnum;
|
||||
import cn.lili.common.enums.PromotionTypeEnum;
|
||||
import cn.lili.common.utils.BeanUtil;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsTypeEnum;
|
||||
import cn.lili.modules.order.cart.entity.dto.MemberCouponDTO;
|
||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||
import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
|
||||
import cn.lili.modules.order.cart.entity.enums.DeliveryMethodEnum;
|
||||
@ -238,8 +239,8 @@ public class Order extends BaseEntity {
|
||||
//店铺优惠券判定
|
||||
if (tradeDTO.getStoreCoupons() != null && !tradeDTO.getStoreCoupons().isEmpty()) {
|
||||
StringBuilder storeCouponIds = new StringBuilder();
|
||||
for (String s : tradeDTO.getStoreCoupons().keySet()) {
|
||||
storeCouponIds.append(s).append(",");
|
||||
for (MemberCouponDTO value : tradeDTO.getStoreCoupons().values()) {
|
||||
storeCouponIds.append(value.getMemberCoupon().getId()).append(",");
|
||||
}
|
||||
this.setUseStoreMemberCouponIds(storeCouponIds.toString());
|
||||
}
|
||||
|
@ -139,4 +139,12 @@ public interface MemberCouponService extends IService<MemberCoupon> {
|
||||
*/
|
||||
void closeMemberCoupon(List<String> couponIds);
|
||||
|
||||
/**
|
||||
* 恢复会员优惠券
|
||||
*
|
||||
* @param memberCouponIds 会员优惠券id列表
|
||||
* @return 是否恢复成功
|
||||
*/
|
||||
boolean recoveryMemberCoupon(List<String> memberCouponIds);
|
||||
|
||||
}
|
@ -285,6 +285,14 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
|
||||
this.update(memberCouponLambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean recoveryMemberCoupon(List<String> memberCouponIds) {
|
||||
LambdaUpdateWrapper<MemberCoupon> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.in(MemberCoupon::getId, memberCouponIds);
|
||||
updateWrapper.set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.NEW.name());
|
||||
return this.update(updateWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除无效的会员优惠券
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user