package cn.me.fdfs.service.impl;
import cn.me.fdfs.service.BaseService;
import cn.me.fdfs.service.FileDataService;
import cn.me.fdfs.vo.DownloadFileRecord;
import cn.me.fdfs.vo.Fdfs_file;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: Administrator
* Date: 12-9-3
* Time: 下午7:09
* To change this template use File | Settings | File Templates.
*/
@Service
public class FileDataServiceImpl extends BaseService implements FileDataService {
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public List<Fdfs_file> getFileListByGroupName(String groupName) {
List<Fdfs_file> files = new ArrayList<Fdfs_file>();
Session session = getSession();
StringBuilder queryString = new StringBuilder(
"from Fdfs_file as f where f.file_id like '" + groupName + "%'");
Query query = session.createQuery(queryString.toString());
files = query.list();
return files;
}
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public DownloadFileRecord getDownloadFileRecordByIpAndFileId(String ip, String fileId) {
DownloadFileRecord downloadFileRecord=new DownloadFileRecord();
Session session = getSession();
StringBuilder queryString = new StringBuilder(" from DownloadFileRecord df where df.src_ip='"+ip+"' and df.fileId='"+fileId+"'");
Query query = session.createQuery(queryString.toString());
List<DownloadFileRecord> list=query.list();
if(list.isEmpty()){
return null;
}else {
return list.get(0);
}
}
@Override
@Transactional(propagation = Propagation.REQUIRED)
public void saveDF(DownloadFileRecord downloadFileRecord) {
Session session = getSession();
session.saveOrUpdate(downloadFileRecord);
}
}