
java
package com.ruijie.futurewindow.order.order.strategy.chain;
import com.ruijie.futurewindow.order.order.strategy.OrderModifyCommitValidateHandler;
import com.ruijie.futurewindow.order.order.strategy.model.ModifyCommitReviewContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
/**
* 修改订单规则校验处理器类
*
* @author Long Yu
* @date 2024-05-30 21:16:03
*/
@Service
public class ModifyCommitOrderRuleValidateChainExecutor {
public List<OrderModifyCommitValidateHandler> chainList = new ArrayList<>();
@Autowired
@Qualifier("seckillOrderDetailModifyValidateHandler")
private OrderModifyCommitValidateHandler seckillOrderDetailModifyValidateHandler;
@Autowired
@Qualifier("orderComplianceVerificationValidateHandler")
private OrderModifyCommitValidateHandler orderComplianceVerificationValidateHandler;
@Autowired
@Qualifier("composeOrderDetailModifyValidateHandler")
private OrderModifyCommitValidateHandler composeOrderDetailModifyValidateHandler;
@Autowired
@Qualifier("minSaleCountModifyValidateHandler")
private OrderModifyCommitValidateHandler minSaleCountModifyValidateHandler;
@PostConstruct
public void init() {
// 初始化三个顺序未来考虑其他方式维护顺序
chainList.add(seckillOrderDetailModifyValidateHandler);
chainList.add(composeOrderDetailModifyValidateHandler);
chainList.add(orderComplianceVerificationValidateHandler);
chainList.add(minSaleCountModifyValidateHandler);
}
/**
* 执行校验
*
* @param context 参数
*/
public void execute(ModifyCommitReviewContext context){
// 按照顺序逐个遍历校验处理
chainList.forEach(handler -> handler.executeCheck(context));
}
}