package cn.ksource.web.service.file; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.WebUtil; @Service("fileService") public class FileServiceImpl implements FileService { @Autowired private BaseDao baseDao; @Override public List getFileList(String business_id) { String sql = "select * from GG_FILES where DEL_FLAG =1 AND BUSINESS_ID=:BUSINESS_ID order by ORDERNUM"; List list = baseDao.queryForList(sql,new SqlParameter("BUSINESS_ID",business_id)); return list; } public List getFileListByType(String business_id,String type) { String sql = "select * from CMS_ATTACHEMENTS where NEWS_ID=:BUSINESS_ID AND TYPE = :type"; List list = baseDao.queryForList(sql,new SqlParameter("BUSINESS_ID",business_id).addValue("type", type)); return list; } @Override public List getFileList(String business_id, int extend_level) { String sql = "select * from GG_FILES where DEL_FLAG =1 \n"; if (extend_level == 1) { sql += " and EXTEND1=:BUSINESS_ID \n"; } if (extend_level == 2) { sql += " and EXTEND2=:BUSINESS_ID \n"; } if (extend_level == 3) { sql += " and EXTEND3=:BUSINESS_ID \n"; } sql += " order by ORDERNUM"; List list = baseDao.queryForList(sql,new SqlParameter("BUSINESS_ID",business_id)); for(Map map:list){ String m=StringUtil.getFileSize(Double.parseDouble(map.get("FILE_SIZE")+"")); map.put("FILE_SIZE_M", m); } return list; } @Override public List uploadFile(Map params) { String business_id = params.get("business_id"); String extend_1business_id = params.get("extend_1business_id"); String extend_2business_id = params.get("extend_2business_id"); String extend_3business_id = params.get("extend_3business_id"); String userId = params.get("userId"); String userName = params.get("userName"); String file_id = params.get("fileId"); String ext_name = params.get("fileExt"); //String field_name = request.getParameterValues("FIELD_NAME"); String file_path = params.get("filePath"); String file_size = params.get("fileSize"); String file_name = params.get("fileName"); String file_type = params.get("fileType"); //String file_note = request.getParameterValues("FILE_NOTE"); List fileList = new ArrayList(); baseDao.execute("delete from GG_FILES where BUSINESS_ID=:BUSINESS_ID ", new SqlParameter("BUSINESS_ID",business_id)); List paramList = new ArrayList(); String sql = "insert into GG_FILES(ID,FILE_NAME,FILE_PATH,FILE_SIZE,FILE_FORMAT,BUSINESS_ID,ORDERNUM,EXTEND1,EXTEND2,EXTEND3,CREATE_TIME,DEL_FLAG,USER_ID,USER_NAME,FILE_TYPE)" + "values(:ID,:FILE_NAME,:FILE_PATH,:FILE_SIZE,:FILE_FORMAT,:BUSINESS_ID,:ORDERNUM,:EXTEND1,:EXTEND2,:EXTEND3,:CREATE_TIME,1,:USER_ID,:USER_NAME,:FILE_TYPE)"; if (ext_name != null && file_path!=null && file_name != null ) { String[] file_ids = file_id.split(","); String[] ext_names = ext_name.split(","); //String[] field_names = request.getParameterValues("FIELD_NAME"); String[] file_paths = file_path.split(","); String[] file_sizes = file_size.split(","); String[] file_names = file_name.split(","); String[] file_types = file_type.split(","); //String[] file_notes = request.getParameterValues("FILE_NOTE"); Long create_time = DateUtil.getCurrentDate14(); for (int i = 0; i < file_names.length; i++) { Map map = new HashMap(); if(file_ids.length > i){ map.put("ID", StringUtils.defaultIfEmpty(file_ids[i], StringUtil.getUUID())); }else{ map.put("ID", StringUtil.getUUID()); } map.put("FILE_NAME", file_names[i]); map.put("FILE_PATH", file_paths[i]); map.put("FILE_SIZE", file_sizes[i]); map.put("FILE_FORMAT", ext_names[i]); if(file_types[i].equals("blank")){ map.put("FILE_TYPE", ""); }else{ map.put("FILE_TYPE", file_types[i]); } map.put("BUSINESS_ID", business_id); map.put("ORDERNUM", i); //map.put("FILE_NOTE", file_notes[i]); map.put("EXTEND1", extend_1business_id); map.put("EXTEND2", extend_2business_id); map.put("EXTEND3", extend_3business_id); map.put("CREATE_TIME", create_time); map.put("USER_ID", userId); map.put("USER_NAME", userName); paramList.add(new SqlParameter().setSource(map)); } baseDao.executeBatch(sql, paramList); } return fileList; } @Override public List getFileList(Map params) { StringBuilder sql = new StringBuilder(); sql.append(" SELECT * FROM GG_FILES WHERE 1=1 "); if(StringUtil.isNotBlank(params.get("businessId"))){ sql.append(" AND BUSINESS_ID = :businessId "); } if(StringUtil.isNotBlank(params.get("fileType"))){ sql.append(" AND FILE_TYPE = :fileType "); } sql.append(" ORDER BY ORDERNUM "); List list = baseDao.queryForList(sql.toString(),params); return list; } @Override public boolean deleteFile(String fileId) { String updateSql = "UPDATE GG_FILES SET DEL_FLAG = 2 WHERE ID = :id"; baseDao.execute(updateSql, new SqlParameter("id",fileId)); return true; } @Override public List uploadFile(HttpServletRequest request, String business_id, String extend_1business_id, String extend_2business_id, String extend_3business_id,String folder,String state,String note) { Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = ConvertUtil.obj2StrBlank(user.get("ID")); String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); String[] file_ids = request.getParameterValues("FILE_ID"); String[] ext_names = request.getParameterValues("EXT_NAME"); //String[] field_names = request.getParameterValues("FIELD_NAME"); String[] file_paths = request.getParameterValues("FILE_PATH"); String[] file_sizes = request.getParameterValues("FILE_SIZE"); String[] file_names = request.getParameterValues("FILE_NAME"); //String[] file_notes = request.getParameterValues("FILE_NOTE"); /*if(!StringUtil.isEmpty(note)){ file_notes[0]=note; }*/ List fileList = new ArrayList(); baseDao.execute("delete from GG_FILES where BUSINESS_ID=:BUSINESS_ID ", new SqlParameter("BUSINESS_ID",business_id)); List paramList = new ArrayList(); String sql = "insert into GG_FILES(ID,FILE_NAME,FILE_PATH,FILE_SIZE,FILE_FORMAT,BUSINESS_ID,ORDERNUM,EXTEND1,EXTEND2,EXTEND3,CREATE_TIME,DEL_FLAG,USER_ID,USER_NAME,FOLDER_ID,AUDIT_STATE,FILE_NOTE)" + "values(:ID,:FILE_NAME,:FILE_PATH,:FILE_SIZE,:FILE_FORMAT,:BUSINESS_ID,:ORDERNUM,:EXTEND1,:EXTEND2,:EXTEND3,:CREATE_TIME,1,:USER_ID,:USER_NAME,:FOLDER_ID,:AUDIT_STATE,:FILE_NOTE)"; if (ext_names != null && file_paths!=null && file_sizes!=null && file_names != null) { Long create_time = DateUtil.getCurrentDate14(); for (int i = 0; i < file_names.length; i++) { Map map = new HashMap(); map.put("ID", StringUtils.defaultIfEmpty(file_ids[i], StringUtil.getUUID())); map.put("FILE_NAME", file_names[i]); map.put("FILE_PATH", file_paths[i]); map.put("FILE_SIZE", file_sizes[i]); map.put("FILE_FORMAT", ext_names[i]); map.put("BUSINESS_ID", business_id); map.put("ORDERNUM", i); map.put("FILE_NOTE", note); //map.put("FILE_NOTE", file_notes[i]); map.put("EXTEND1", extend_1business_id); map.put("EXTEND2", extend_2business_id); map.put("EXTEND3", extend_3business_id); map.put("CREATE_TIME", create_time); map.put("USER_ID", userId); map.put("USER_NAME", userName); map.put("FOLDER_ID", folder); map.put("AUDIT_STATE", state); paramList.add(new SqlParameter().setSource(map)); } baseDao.executeBatch(sql, paramList); } return fileList; } @Override public List uploadFile(HttpServletRequest request, String business_id,String folder,String state) { return uploadFile(request, business_id, null, null, null,folder,state,null); } @Override public List uploadFile(HttpServletRequest request, String business_id,String folder,String state,String note) { return uploadFile(request, business_id, null, null, null,folder,state,note); } @Override public void newuploadFileAll(HttpServletRequest request, String business_id,String extend_1, String extend_1business_id, String extend_2business_id, String extend_3business_id,String customer_id,String project_id,String project_name,String customer_name) { Map user = WebUtil.getLoginUser(request).getLoginUser(); String userId = ConvertUtil.obj2StrBlank(user.get("ID")); String userName = ConvertUtil.obj2StrBlank(user.get("ZSXM")); String[] file_ids = request.getParameterValues("FILE_ID"); String[] ext_names = request.getParameterValues("EXT_NAME"); String[] field_names = request.getParameterValues("FIELD_NAME"); String[] file_paths = request.getParameterValues("FILE_PATH"); String[] file_sizes = request.getParameterValues("FILE_SIZE"); String[] file_names = request.getParameterValues("FILE_NAME"); String[] file_notes = request.getParameterValues("FILE_NOTE"); List fileList = new ArrayList(); // baseDao.execute("delete from GG_FILES where BUSINESS_ID=:BUSINESS_ID ", new SqlParameter("BUSINESS_ID",business_id)); List paramList = new ArrayList(); String sql = "insert into GG_FILES(ID,FILE_NAME,FILE_PATH,FILE_SIZE,FILE_FORMAT,BUSINESS_ID,ORDERNUM,FOLDER_ID,AUDIT_STATE,EXTEND3,CREATE_TIME,DEL_FLAG,USER_ID,USER_NAME,PROJECT_ID,CUSTOMER_ID,EXTEND1,PROJECT_NAME,CUSTOMER_NAME)" + "values(:ID,:FILE_NAME,:FILE_PATH,:FILE_SIZE,:FILE_FORMAT,:BUSINESS_ID,:ORDERNUM,:EXTEND1,:EXTEND2,:EXTEND3,:CREATE_TIME,1,:USER_ID,:USER_NAME,:project_id,:customer_id,:extend_1,:project_name,:customer_name)"; if (ext_names != null && field_names!=null && file_paths!=null && file_sizes!=null && file_names != null ) { Long create_time = DateUtil.getCurrentDate14(); for (int i = 0; i < field_names.length; i++) { Map map = new HashMap(); map.put("ID", StringUtils.defaultIfEmpty(file_ids[i], StringUtil.getUUID())); map.put("FILE_NAME", file_names[i]); map.put("FILE_PATH", file_paths[i]); map.put("FILE_SIZE", file_sizes[i]); map.put("FILE_FORMAT", ext_names[i]); map.put("BUSINESS_ID", business_id); map.put("ORDERNUM", i); // map.put("FILE_NOTE", file_notes[i]); map.put("EXTEND1", extend_1business_id); map.put("EXTEND2", extend_2business_id); map.put("EXTEND3", extend_3business_id); map.put("CREATE_TIME", create_time); map.put("USER_ID", userId); map.put("USER_NAME", userName); map.put("project_id", project_id); map.put("customer_id", customer_id); map.put("extend_1", extend_1); map.put("project_name", project_name); map.put("customer_name", customer_name); paramList.add(new SqlParameter().setSource(map)); } baseDao.executeBatch(sql, paramList); } } }