package com.pms.service; import java.io.BufferedReader; import java.sql.Clob; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import org.apache.ibatis.session.SqlSession; import org.springframework.stereotype.Service; import com.pms.common.SqlMapConfig; import com.pms.common.bean.PersonBean; import com.pms.common.service.BaseService; import com.pms.common.utils.CommonUtils; import com.pms.common.utils.Constants; import com.pms.common.utils.MailUtil; @Service public class DistributionService extends BaseService{ /** * 비정규배포 목록을 가져온다. * @param request * @param paramMap * @return * @throws Exception */ public ArrayList> getDistributionMngList(HttpServletRequest request, Map paramMap){ ArrayList> distributionMngList = new ArrayList(); HashMap pageMap = new HashMap(); SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ String page = CommonUtils.checkNull(request.getParameter("page")); String countPerPage = CommonUtils.checkNull(request.getParameter("countPerPage"), ""+Constants.ADMIN_COUNT_PER_PAGE+""); paramMap.put("COUNT_PER_PAGE", Integer.parseInt(countPerPage)); pageMap = (HashMap)sqlSession.selectOne("distribution.getDistributionMngListCnt", paramMap); pageMap = (HashMap)CommonUtils.setPagingInfo(request, pageMap); paramMap.put("PAGE_END", CommonUtils.checkNull(pageMap.get("PAGE_END"))); paramMap.put("PAGE_START", CommonUtils.checkNull(pageMap.get("PAGE_START"))); distributionMngList = (ArrayList)sqlSession.selectList("distribution.getDistributionMngList", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } return distributionMngList; } /** * 비정규배포를 등록/수정한다. * @param request * @param paramMap * @return * @throws Exception */ public void mergeDistribution(HttpServletRequest request, Map paramMap){ SqlSession sqlSession = SqlMapConfig.getInstance().getSqlSession(); try{ String distributeObjid = CommonUtils.checkNull(paramMap.get("objId")); PersonBean person = (PersonBean)request.getSession().getAttribute(Constants.PERSON_BEAN); String writer = CommonUtils.checkNull(person.getUserId()); String status = CommonUtils.checkNull(paramMap.get("status")); if("".equals(status)){ paramMap.put("status", "create"); } paramMap.put("writer", writer); if("".equals(distributeObjid)){ distributeObjid = CommonUtils.createObjId(); } paramMap.put("distributeObjid", distributeObjid); sqlSession.update("distribution.mergeDistribution", paramMap); ArrayList distributeList = (ArrayList)sqlSession.selectList("admin.getCarDistributeMngList", paramMap); for(int i=0; i 0){ resultMap.put("result", true); resultMap.put("msg", "발송되었습니다."); //메일발송 Map sqlParam = new HashMap(); sqlParam.put("targetObjId", CommonUtils.checkNull(paramMap.get("objId"))); List addressList = sqlSession.selectList("distribution.getSendFileReceiversMailAddressList", sqlParam); //메일 body에 들어갈 map setting String subject = CommonUtils.checkNull(paramMap.get("title")); String contents = CommonUtils.checkNull(paramMap.get("description")); HashMap bodyContentsMap = new HashMap(); bodyContentsMap.put("SUBJECT", subject); bodyContentsMap.put("CONTENTS", contents); String bodyContents = MailUtil.getHTMLContents("sendFileMailTemplate", bodyContentsMap); if(addressList != null){ for(Map addressMap : addressList){ String receiverUserId = CommonUtils.checkNull(addressMap.get("RECEIVER")); String receiverEmail = CommonUtils.checkNull(addressMap.get("RECEIVER_EMAIL")); MailUtil.sendMail(receiverUserId, receiverEmail, subject, bodyContents, Constants.MAIL_TYPE_FILE_SEND_MAIL); } } }else{ resultMap.put("result", false); resultMap.put("msg", "발송에 실패하였습니다."); } sqlSession.commit(); }catch(Exception e){ sqlSession.rollback(); resultMap.put("result", false); resultMap.put("msg", "시스템 에러입니다. 증상이 반복되면 관리자에게 문의바랍니다."); e.printStackTrace(); }finally{ sqlSession.close(); } return resultMap; } /** * 파일송부 수신인 저장 * @param paramMap * @return */ public void addSendFileReceivers(HttpServletRequest request, Map paramMap){ SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); String targetObjId = CommonUtils.checkNull(paramMap.get("targetObjId")); String[] receivers = request.getParameterValues("userId"); for(int i = 0; i < receivers.length ; i++){ String receiver = CommonUtils.checkNull(receivers[i]); if(!"".equals(receiver)){ Map sqlMap = new HashMap(); sqlMap.put("objId", CommonUtils.createObjId()); sqlMap.put("targetObjId", targetObjId); sqlMap.put("receiver", receiver); System.out.println("sqlMap : "+sqlMap); sqlSession.insert("distribution.insertSendFileReceiverInfo", sqlMap); } } }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } } /** * 파일송부 수신자 삭제 * @param paramMap */ public void deleteSendFileReceiverInfo(Map paramMap){ SqlSession sqlSession = null; try{ sqlSession = SqlMapConfig.getInstance().getSqlSession(); int cnt = sqlSession.insert("distribution.deleteSendFileReceiverInfo", paramMap); }catch(Exception e){ e.printStackTrace(); }finally{ sqlSession.close(); } } }