com.yqjr.framework.component.log.interactive.ClientInteractiveLogger Maven / Gradle / Ivy
/**
*
*/
package com.yqjr.framework.component.log.interactive;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import com.yqjr.framework.base.BaseModel;
import com.yqjr.framework.component.log.InteractiveLogger;
import com.yqjr.framework.datatype.BizzException;
import com.yqjr.modules.clientlog.entity.ClientLog;
import com.yqjr.modules.clientlog.model.ClientLogModel;
import com.yqjr.modules.clientlog.service.ClientLogService;
/**
* ClassName: ClientInteractiveLogger
* Description: 客户端交互式日志记录组件
* Create By: admin
* Create Date: 2017年6月7日 上午8:14:48
* Modified By:
* Modified Date:
* Modified Content:
* Version: 1.0
*/
@Service
public class ClientInteractiveLogger extends InteractiveLogger {
@Autowired
private ClientLogService clientLogService;
/*
* (non-Javadoc)
*
* @see com.yqjr.framework.component.log.InteractiveLogger#saveLog(com.yqjr.
* framework.base.BaseEntity)
*/
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveLog(BaseModel logModel) {
Assert.notNull(logModel);
Assert.isInstanceOf(ClientLogModel.class, logModel, "参数类型不符");
clientLogService.save((ClientLogModel) logModel);
}
/*
* (non-Javadoc)
*
* @see
* com.yqjr.framework.component.log.InteractiveLogger#performanceSaveLog(com
* .yqjr.framework.base.BaseEntity)
*/
@Override
public void performanceSaveLog(BaseModel logModel) {
Assert.notNull(logModel);
Assert.isInstanceOf(ClientLogModel.class, logModel, "参数类型不符");
bufferQueue.add((ClientLogModel) logModel);
}
/*
* (non-Javadoc)
*
* @see
* com.yqjr.framework.component.log.InteractiveLogger#updateLog(com.yqjr.
* framework.base.BaseEntity)
*/
@Override
public void updateLog(BaseModel logModel) {
throw new BizzException("暂不支持");
}
/*
* (non-Javadoc)
*
* @see
* com.yqjr.framework.component.log.InteractiveLogger#batchProcess(java.util
* .List)
*/
@Override
public void batchProcess(List> logs) {
List entities = new ArrayList();
for (BaseModel model : logs) {
ClientLog entity = clientLogService.toEntity((ClientLogModel) model, ClientLog.class);
entities.add(entity);
}
clientLogService.batchSave(entities);
}
}