itsm_ysm/src/main/java/nlib/col/web/RisController.java
2021-10-13 14:01:13 +09:00

130 lines
4.5 KiB
Java

package nlib.col.web;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import nlib.bbs.service.ArticleVO;
import nlib.cmm.NlibCommonController;
import nlib.cmm.service.CodeService;
import nlib.cmm.service.NlibProperty;
import nlib.cmm.service.PagingVO;
import nlib.col.service.RisService;
import nlib.col.service.CollectionVO;
import nlib.col.service.DeptVO;
import nlib.col.service.InterestService;
import nlib.col.service.RisVO;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
import nlib.user.service.NlibLoginVO;
import nlib.util.StringUtil;
/**
* @author JSYOO
*
*/
@Controller
public class RisController extends NlibCommonController
{
private static final Logger log = LoggerFactory.getLogger(RisController.class);
static final String DEFUALT_PAGE_SIZE = NlibProperty.getProperty("list.paging.page.size");
@Resource(name = "codeService")
private CodeService codeService;
@Resource(name="risService")
private RisService risService;
@Resource(name = "interestService")
private InterestService interestService;
/**
* RIS파일 다운로드
* @param vo
* @throws IOException
*/
@RequestMapping(value="/ris/risDownload.do")
public void risDownload(HttpServletRequest request,HttpServletResponse response) throws IOException {
RisVO vo = new RisVO();
vo.setMasterId(request.getParameter("masterId"));
vo = risService.selectRisInfo(vo);
response.setContentType("text/plain");
String fileName = vo.getTt();
String Ty="";
// 브라우저 별 한글 인코딩
String header = request.getHeader("User-Agent");
if (header.contains("Edge")){
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".ris;\"");
} else if (header.contains("MSIE") || header.contains("Trident")) { // IE 11버전부터 Trident로 변경되었기때문에 추가해준다.
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".ris;");
} else if (header.contains("Chrome")) {
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".ris\"");
} else if (header.contains("Opera")) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".ris\"");
} else if (header.contains("Firefox")) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".ris");
}
Ty = StringUtil.getString(vo.getTy(), "");
if(Ty.length() > 3)
{
Ty = Ty.replaceFirst("IT_", "");
}
String s = "TY - " + Ty;
s+= "\nTI - " + StringUtil.getString(vo.getTt(), "");
s+= "\nPY - " + StringUtil.getString(vo.getPy(), "");
s+= "\nKW - " + StringUtil.getString(vo.getKw(), "");
s+= "\nT2 - " + StringUtil.getString(vo.getT2(), "");
s+= "\nA1 - " + StringUtil.getString(vo.getA1(), "");
s+= "\nPP - " + StringUtil.getString(vo.getPp(), "");
s+= "\nM1 - " + StringUtil.getString(vo.getM1(), "");
s+= "\nL4 - " + StringUtil.getString(vo.getL4(), "");
s+= "\nER - ";
InputStream input = new ByteArrayInputStream(s.getBytes("UTF8"));
int read = 0;
byte[] bytes = new byte[1024];
OutputStream os = response.getOutputStream();
while ((read = input.read(bytes)) != -1) {
os.write(bytes, 0, read);
}
os.flush();
os.close();
}
}