package com.zdb.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import com.zdb.entity.BaseProject;
import com.zdb.service.ProjectService;
import com.zdb.util.ResultUtil;
@Controller
@RequestMapping(value="/project")
public class ProjectController {
@Autowired
private ProjectService projectService;
/**
* 添加项目或标段项目
* */
@RequestMapping(value="/insertProject",produces="application/json;charset=utf-8")
@ResponseBody //前端file传过来的文件
public String insertProject(@RequestParam MultipartFile file,BaseProject project,HttpServletRequest request)throws IOException {
/*String path = request.getSession().getServletContext().getRealPath("/images");//获取服务器地址D:\eclipse\apache-tomcat-7.0.61\ZDB\images
System.out.println("path-------"+path);*/
Object result = null;
String path = request.getRealPath("/images");//获取服务器地址D:\eclipse\apache-tomcat-7.0.61\ZDB\images(古老的方法不推荐使用!我是因为上边那个方法不知道怎么回事抛空指针异常才用这个的)
String fileName = file.getOriginalFilename();//获取前端传来文件的名字
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//定义时间的格式
fileName = df.format(new Date())+fileName;//把文件名字和时间拼接起来保证不会有重名的图片
File files = new File(path,fileName);//在path文件路径下,创建名字为fileName的文件
files.mkdirs(); //创建多级文件夹,mkdir()只会建立一级的文件夹 列1:mkdir()只会建立一级的文件夹,执行后, 会建立tmp/one/two/three四级目录 列2 : new File("/tmp/one/two/three").mkdir();则不会建立任何目录, 因为找不到/tmp/one/two目录, 结果返回false
file.transferTo(files); // //把内存图片写入磁盘中
if(project.getParentId().equals("")){
project.setFileId(fileName);
result = projectService.insertProject(project);
return ResultUtil.getReturnResult(result);
}
project.setPointFileId(fileName);
result = projectService.insertProject(project);
return ResultUtil.getReturnResult(result);
}
/**
* 查询(项目)信息
*
* */
@RequestMapping(value="/selectProjectTypeOne",produces="application/json;charset=utf-8")
@ResponseBody
public String selectProjectTypeOne(){
Integer projectType = 1;
Object result = projectService.selectProjectTypeOne(projectType);
System.out.println(projectService.selectProjectTypeOne(projectType).toString());
return ResultUtil.getReturnResult(result);
}
/**
* 查询(标段)信息
*
* */
@RequestMapping(value="/selectProjectTypeTwo",produces="application/json;charset=utf-8")
@ResponseBody
public String selectProjectTypeTwo(){
Integer projectType = 2;
Object result = projectService.selectProjectTypeOne(projectType);
System.out.println(projectService.selectProjectTypeOne(projectType).toString());
return ResultUtil.getReturnResult(result);
}
/**
* 删除项目以及标段
* */
@RequestMapping(value="/deleteProject",produces="application/json;charset=utf-8")
@ResponseBody
public String deleteProject(String projectId){
projectId="1";
Object result = projectService.deleteProject(projectId);
return ResultUtil.getReturnResult(result);
}
/**
* 修改项目信息
* */
@RequestMapping(value="/updateProject",produces="application/json;charset=utf-8")
@ResponseBody
public String updateProject(@RequestParam MultipartFile file,BaseProject project,HttpServletRequest request)throws IOException {
project.setProjectId("1");
System.out.println(project.getProjectId());
Object result = null;
String path = request.getRealPath("/images");
String fileName = file.getOriginalFilename();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
if(project.getParentId() == null){
if(fileName == ""){
result = projectService.updateProject(project);
return ResultUtil.getReturnResult(result);
}else{
BaseProject projects = projectService.selectByPrimaryKey(project.getProjectId());
File fil = new File(path + "\\"+projects.getFileId());
InputStream inputStream = new FileInputStream(fil);//在读取文件的时候,就是一个一个byte地读取,
if(inputStream != null){
inputStream.close(); //关闭输出流
}
fil.delete(); //删除服务器上的文件
fileName = df.format(new Date())+fileName;
project.setFileId(fileName);
File files = new File(path,fileName);
files.mkdirs();
file.transferTo(files);
projectService.updateProject(project);
return ResultUtil.getReturnResult(result);
}
}else{
if(fileName == ""){
result = projectService.updateProject(project);
}else{
BaseProject projects = projectService.selectByPrimaryKey(project.getProjectId());
File fil = new File(path + "\\"+projects.getFileId());
InputStream inputStream = new FileInputStream(fil);
if(inputStream != null){
inputStream.close();
}
fil.delete();
System.out.println(fil);
fileName = df.format(new Date())+fileName;
project.setPointFileId(fileName);
File files = new File(path,fileName);
files.mkdirs();
file.transferTo(files);
result = projectService.updateProject(project);
return ResultUtil.getReturnResult(result);
}
}
return ResultUtil.getReturnResult(result);
}
}