Newer
Older
PgInterface / src / main / java / com / casic / PgInterface / construction / manager / PgCsDocumentManager.java
package com.casic.PgInterface.construction.manager;

import com.casic.PgInterface.construction.dto.PgCsDocumentDto;
import com.casic.PgInterface.core.hibernate.HibernateEntityDao;
import com.casic.PgInterface.construction.domain.PgCsDocument;
import com.casic.PgInterface.core.util.StringUtils;
import com.casic.PgInterface.core.util.DateUtils;

import com.sun.xml.internal.ws.client.ResponseContextReceiver;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.sun.org.apache.xml.internal.security.utils.Base64;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;


/**
 * Created by zxh on 2018/3/28.
 */
@Service
public class PgCsDocumentManager extends HibernateEntityDao<PgCsDocument>{

    public String saveFiles(List<MultipartFile> files,String fileType){
        String [] fileNames = new String[files.size()];
        String [] fileBuffers = new String[files.size()];
        try {
            for (int i = 0; i < files.size(); i++) {
                fileNames[i] = files.get(i).getOriginalFilename();
                byte[] fis = files.get(i).getBytes();
                fileBuffers[i] = new String(Base64.encode(fis, Base64.BASE64DEFAULTLENGTH));
            }
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String strDirPath = request.getSession().getServletContext().getRealPath("");

            FileOutputStream fos = null;
            String image_toDir = strDirPath + "\\"+fileType;//存储路径
            String imageName = "";
            for (int i = 0; i < fileBuffers.length; i++) {
                if (fileBuffers[i] != null && fileNames[i] != null) {
                    imageName += fileType+"/"+fileNames[i] + ",";
                    byte[] buffer = new BASE64Decoder().decodeBuffer(fileBuffers[i]);//对android传过来的图片字符串进行解码
                    File destDir = new File(image_toDir);
                    if (!destDir.exists())
                        destDir.mkdirs();
                    File imageFile = new File(destDir, fileNames[i]);
                    fos = new FileOutputStream(imageFile);//保存图片
                    fos.write(buffer);
                    fos.flush();
                    fos.close();
                }
            }
            return imageName.substring(0,imageName.length()-1);
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            return "";
        }
    }


    public  String saveFiles(String fileBuffer, String fileName, String fileType){

        try {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            String strDirPath = request.getSession().getServletContext().getRealPath("");

            FileOutputStream fos = null;
            String image_toDir = strDirPath + "\\"+fileType;//存储路径
            String imageName = "";
            imageName += fileType+"/"+fileName;
            byte[] buffer = new BASE64Decoder().decodeBuffer(fileBuffer);//对android传过来的图片字符串进行解码
            File destDir = new File(image_toDir);
            if (!destDir.exists())
                destDir.mkdirs();
            File imageFile = new File(destDir, fileName);
            fos = new FileOutputStream(imageFile);//保存文件
            fos.write(buffer);
            fos.flush();
            fos.close();
            return imageName;
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
            return "";
        }
    }

    /*下载*/
    public String downFile(String fileName, String fileType){
    try {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        String strDirPath = request.getSession().getServletContext().getRealPath("");

        Criteria criteria = createCriteria(PgCsDocument.class);
        criteria.add(Restrictions.eq("active", 1));
        List<PgCsDocument> pgCsDocumentList = criteria.list();

        if (pgCsDocumentList == null || pgCsDocumentList.size() == 0)
            return null;

        FileOutputStream fos = null;
        String image_toDir = strDirPath + "\\" + fileType + "/" + fileName;

        File destDir = new File(image_toDir);
        if (!destDir.exists())
            destDir.mkdirs();

        byte[] buffer = new BASE64Decoder().decodeBuffer(image_toDir);
        fos.write(buffer);
        fos.flush();
        fos.close();

        return image_toDir;
        }
        catch (Exception e)
        {
         e.printStackTrace();
            return "";
        }
    }

    /*查询*/
    public List<PgCsDocumentDto> getAllDocData(String cs_name ,String cs_type,String cs_time) {

        List<PgCsDocumentDto> pgCsDocumentDtoList = new ArrayList<PgCsDocumentDto>();

        try {
            Criteria criteria = createCriteria(PgCsDocument.class);
            criteria.addOrder(Order.desc("id"));
            criteria.add(Restrictions.eq("cs_name", cs_name));
            criteria.add(Restrictions.eq("cs_type", cs_type));

            if (StringUtils.isNotBlank(cs_time)) {
                criteria.add(Restrictions.like("cs_time", DateUtils.sdf4.parse(cs_time)));
            }
            List<PgCsDocument> pgCsDocumentList=criteria.list();

            for (PgCsDocument pgCsDocument : pgCsDocumentList) {
                pgCsDocumentDtoList.add(new PgCsDocumentDto(pgCsDocument));
            }
        }
        catch(Exception ex)
        {
            return null;
        }

        return pgCsDocumentDtoList;
    }
/*
*根据工程名称查找
*/
    public PgCsDocument getDocByCsName(String cs_name) {
        Criteria criteria=createCriteria(PgCsDocument.class);
        criteria.add(Restrictions.eq("cs_name",cs_name));

        List<PgCsDocument> pgCsDocumentList=criteria.list();
        if(pgCsDocumentList.size()==0)
            return null;
        else
            return pgCsDocumentList.get(0);
    }
}