package com.mortals.xhx.module.api.handler;

import com.mortals.xhx.module.api.model.AssetEventLog;
import com.mortals.xhx.module.asset.model.AssetEntity;
import com.mortals.xhx.module.asset.model.AssetFlowEventEntity;

/**
 * 资产事件处理器（只记录日志、修改状态）
 * 
 * @author luoshichao
 * @Description
 * @date 2021/1/8 14:51
 */
public interface AssetFlowEventHandler {

	/**
	 * 校验参数
	 * 
	 * @param assetEntity 资产
	 * @param eventEntity 事件
	 * @param req
	 */
	public void validateParam(AssetEntity assetEntity, AssetFlowEventEntity eventEntity, AssetEventLog req);

	/**
	 * 事件处理(保存事件日志、修改资产状态等)
	 * 
	 * @param assetEntity 资产
	 * @param eventEntity 事件
	 * @param req         参数
	 */
	public void execute(AssetEntity assetEntity, AssetFlowEventEntity eventEntity, AssetEventLog req);
}
