Merge branch 'tolag3'
This commit is contained in:
commit
60449d647f
@ -101,5 +101,11 @@ public interface ApmService {
|
|||||||
ApmVO selectAdrAdmMemo(ApmVO apmVO) throws Exception;
|
ApmVO selectAdrAdmMemo(ApmVO apmVO) throws Exception;
|
||||||
|
|
||||||
void updateAdrAdmMemo(ApmVO apmVO) throws Exception;
|
void updateAdrAdmMemo(ApmVO apmVO) throws Exception;
|
||||||
|
|
||||||
|
//사건메모 select
|
||||||
|
ApmVO selectAdrMemo(ApmVO apmVO) throws Exception;
|
||||||
|
|
||||||
|
//사건메모 update(등록/수정/삭제)
|
||||||
|
void updateAdrMemo(ApmVO apmVO) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -46,6 +46,8 @@ public class ApmVO extends PgrCmmVO implements Serializable {
|
|||||||
|
|
||||||
private String adrAdmMemo;
|
private String adrAdmMemo;
|
||||||
|
|
||||||
|
private String adrCn; /* 사건메모 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getRpplDocSeq() {
|
public String getRpplDocSeq() {
|
||||||
@ -296,6 +298,14 @@ public class ApmVO extends PgrCmmVO implements Serializable {
|
|||||||
this.adrAdmMemo = adrAdmMemo;
|
this.adrAdmMemo = adrAdmMemo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getAdrCn() {
|
||||||
|
return adrCn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdrCn(String adrCn) {
|
||||||
|
this.adrCn = adrCn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -199,4 +199,12 @@ public class ApmDAO extends EgovAbstractDAO {
|
|||||||
update("apmDAO.updateAdrAdmMemo", apmVO);
|
update("apmDAO.updateAdrAdmMemo", apmVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ApmVO selectAdrMemo(ApmVO apmVO) throws Exception {
|
||||||
|
return (ApmVO) select("apmDAO.selectAdrMemo", apmVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateAdrMemo(ApmVO apmVO) throws Exception {
|
||||||
|
update("apmDAO.updateAdrMemo", apmVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -563,6 +563,16 @@ public class ApmServiceImpl implements ApmService {
|
|||||||
apmDAO.updateAdrAdmMemo(apmVO);
|
apmDAO.updateAdrAdmMemo(apmVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ApmVO selectAdrMemo(ApmVO apmVO) throws Exception {
|
||||||
|
return apmDAO.selectAdrMemo(apmVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAdrMemo(ApmVO apmVO) throws Exception {
|
||||||
|
apmDAO.updateAdrMemo(apmVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -69,6 +69,7 @@ import kcc.kccadr.adjPgrMgr.ent.service.EntService;
|
|||||||
import kcc.kccadr.adjPgrMgr.ent.service.EntVO;
|
import kcc.kccadr.adjPgrMgr.ent.service.EntVO;
|
||||||
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService;
|
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService;
|
||||||
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
|
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
|
||||||
|
import kcc.kccadr.adjreqmgr.service.AdjReqMgrService;
|
||||||
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
|
||||||
import kcc.kccadr.adjst.service.AdjstReqService;
|
import kcc.kccadr.adjst.service.AdjstReqService;
|
||||||
import kcc.kccadr.adjst.service.AdjstReqVO;
|
import kcc.kccadr.adjst.service.AdjstReqVO;
|
||||||
@ -197,6 +198,10 @@ public class ApmController {
|
|||||||
@Resource(name="adrHstryMgrSeqGnrService")
|
@Resource(name="adrHstryMgrSeqGnrService")
|
||||||
private EgovIdGnrService adrHstryMgrSeqGnrService;
|
private EgovIdGnrService adrHstryMgrSeqGnrService;
|
||||||
|
|
||||||
|
// 조정신청 서비스단
|
||||||
|
@Resource(name = "AdjReqMgrService")
|
||||||
|
private AdjReqMgrService adjReqMgrService;
|
||||||
|
|
||||||
// 실서버 개발서버 구분
|
// 실서버 개발서버 구분
|
||||||
private static String islocal; // /pdf/out/
|
private static String islocal; // /pdf/out/
|
||||||
@Value("#{globalSettings['Globals.prod.islocal']}")
|
@Value("#{globalSettings['Globals.prod.islocal']}")
|
||||||
@ -487,6 +492,13 @@ public class ApmController {
|
|||||||
model.addAttribute("list_mgr" , adrHstryMgrService.selectList(adrHstryMgrVO));
|
model.addAttribute("list_mgr" , adrHstryMgrService.selectList(adrHstryMgrVO));
|
||||||
//이력값 - 끝
|
//이력값 - 끝
|
||||||
|
|
||||||
|
AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
|
||||||
|
|
||||||
|
adjReqMgrVO.setAdrSeq(cmmVO.getAdrSeq());
|
||||||
|
|
||||||
|
List<AdjReqMgrVO> person = adjReqMgrService.selectAdjstReqMgrPersonList(adjReqMgrVO);
|
||||||
|
decryptInfomation(person ,null);
|
||||||
|
model.addAttribute("person", person);
|
||||||
|
|
||||||
return "/kccadr/adjPgrMgr/apm/apmTab0";
|
return "/kccadr/adjPgrMgr/apm/apmTab0";
|
||||||
}
|
}
|
||||||
@ -828,6 +840,72 @@ public class ApmController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사건메모 팝업 상세
|
||||||
|
*
|
||||||
|
* @param apmVO
|
||||||
|
* @param model
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "popup/adrMemo.do")
|
||||||
|
public String adrMemo(@ModelAttribute("apmVO") ApmVO apmVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
//이미 있는메모 정보가져오는 쿼리작성(adr_mgr_master > adr_cn 컬럼)
|
||||||
|
//등록,수정(merge into)
|
||||||
|
//삭제(update > '')
|
||||||
|
//한 팝업에서 동작
|
||||||
|
|
||||||
|
ApmVO memoVO = new ApmVO();
|
||||||
|
|
||||||
|
memoVO = apmService.selectAdrMemo(apmVO);
|
||||||
|
|
||||||
|
model.addAttribute("apmVO", apmVO);
|
||||||
|
model.addAttribute("memoVO", memoVO);
|
||||||
|
|
||||||
|
return "/kccadr/adjPgrMgr/apm/popup/adrMemoPop";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사건메모 등록/수정/삭제
|
||||||
|
*
|
||||||
|
* @param apmVO
|
||||||
|
* @param model
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "popup/updateAdrMemoAjax.do")
|
||||||
|
public ModelAndView updateAdrMemoAjax(
|
||||||
|
@ModelAttribute("apmVO") ApmVO apmVO
|
||||||
|
, ModelMap model
|
||||||
|
, HttpServletRequest request) throws Exception {
|
||||||
|
|
||||||
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
|
modelAndView.setViewName("jsonView");
|
||||||
|
|
||||||
|
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
|
||||||
|
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
|
||||||
|
|
||||||
|
try {
|
||||||
|
//최종수정자 set
|
||||||
|
apmVO.setLastUpdusrId(userId);
|
||||||
|
|
||||||
|
//등록, 수정, 삭제 모두 update
|
||||||
|
apmService.updateAdrMemo(apmVO);
|
||||||
|
|
||||||
|
modelAndView.addObject("result", "success");
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
modelAndView.addObject("result", "fail");
|
||||||
|
}
|
||||||
|
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 취하신청 팝업 상세
|
* 취하신청 팝업 상세
|
||||||
*
|
*
|
||||||
@ -2253,4 +2331,48 @@ public class ApmController {
|
|||||||
model.addAttribute("reqfileList", apmService.selectAdrReqFileList(apmVO));
|
model.addAttribute("reqfileList", apmService.selectAdrReqFileList(apmVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void decryptInfomation(List<AdjReqMgrVO> list, AdjReqMgrVO info){
|
||||||
|
if(CollectionUtils.isNotEmpty(list)){
|
||||||
|
for(AdjReqMgrVO model : list){
|
||||||
|
model.setRpplNm(egovCryptoUtil.decrypt(model.getRpplNm()));
|
||||||
|
model.setRpplAddr(egovCryptoUtil.decrypt(model.getRpplAddr()));
|
||||||
|
model.setRpplAddrDtl(egovCryptoUtil.decrypt(model.getRpplAddrDtl()));
|
||||||
|
model.setRpplPost(egovCryptoUtil.decrypt(model.getRpplPost()));
|
||||||
|
model.setRpplEmail(egovCryptoUtil.decrypt(model.getRpplEmail()));
|
||||||
|
model.setRpplPhone(egovCryptoUtil.decrypt(model.getRpplPhone()));
|
||||||
|
model.setRpplRealPost(egovCryptoUtil.decrypt(model.getRpplRealPost()));
|
||||||
|
model.setRpplRealAddr(egovCryptoUtil.decrypt(model.getRpplRealAddr()));
|
||||||
|
model.setRpplRealAddrDtl(egovCryptoUtil.decrypt(model.getRpplRealAddrDtl()));
|
||||||
|
model.setDepuTyNm(egovCryptoUtil.decrypt(model.getDepuTyNm()));
|
||||||
|
// model.setResPonDentNm(egovCryptoUtil.decrypt(model.getResPonDentNm()));
|
||||||
|
|
||||||
|
if (!StringUtil.isEmpty(model.getResPonDentNm())) {
|
||||||
|
String tmpStr = "";
|
||||||
|
if(model.getResPonDentNm().contains("외")) {
|
||||||
|
tmpStr = model.getResPonDentNm().substring(model.getResPonDentNm().length()-3);
|
||||||
|
}
|
||||||
|
model.setResPonDentNm(egovCryptoUtil.decrypt(model.getResPonDentNm()) + " " + tmpStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
model.setAppliCantNm(egovCryptoUtil.decrypt(model.getAppliCantNm()));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(info != null){
|
||||||
|
info.setRpplNm(egovCryptoUtil.decrypt(info.getRpplNm()));
|
||||||
|
info.setRpplAddr(egovCryptoUtil.decrypt(info.getRpplAddr()));
|
||||||
|
info.setRpplAddrDtl(egovCryptoUtil.decrypt(info.getRpplAddrDtl()));
|
||||||
|
info.setRpplPost(egovCryptoUtil.decrypt(info.getRpplPost()));
|
||||||
|
info.setRpplEmail(egovCryptoUtil.decrypt(info.getRpplEmail()));
|
||||||
|
info.setRpplPhone(egovCryptoUtil.decrypt(info.getRpplPhone()));
|
||||||
|
info.setDepuTyNm(egovCryptoUtil.decrypt(info.getDepuTyNm()));
|
||||||
|
info.setResPonDentNm(egovCryptoUtil.decrypt(info.getResPonDentNm()));
|
||||||
|
info.setAppliCantNm(egovCryptoUtil.decrypt(info.getAppliCantNm()));
|
||||||
|
info.setRpplRealPost(egovCryptoUtil.decrypt(info.getRpplRealPost()));
|
||||||
|
info.setRpplRealAddr(egovCryptoUtil.decrypt(info.getRpplRealAddr()));
|
||||||
|
info.setRpplRealAddrDtl(egovCryptoUtil.decrypt(info.getRpplRealAddrDtl()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,4 +36,6 @@ public interface SMSOracleService {
|
|||||||
// EMAIL 전송(저작위 메일서버)
|
// EMAIL 전송(저작위 메일서버)
|
||||||
public String insertEmailSend(EgovMap egovMap);
|
public String insertEmailSend(EgovMap egovMap);
|
||||||
|
|
||||||
|
// SMS 작성 메세지 전송(저작위 SMS서버 DB등록)
|
||||||
|
public String insertSmsCustomSend(AdjReqMgrVO adjReqMgrVO) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -613,5 +613,66 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SMS 전송(저작위 SMS서버 DB등록)
|
||||||
|
@Override
|
||||||
|
public String insertSmsCustomSend(AdjReqMgrVO adjReqMgrVO) throws Exception {
|
||||||
|
String result = "fail";
|
||||||
|
List<EgovMap> sendMapList = getSmsSendMsg(adjReqMgrVO); // 전송 메세지 > 전자조정DB
|
||||||
|
|
||||||
|
if (sendMapList == null || sendMapList.isEmpty()) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (EgovMap map : sendMapList) {
|
||||||
|
|
||||||
|
// test 수신자 번호 여현준
|
||||||
|
//map.put("rpplPhone", "010-8532-6650");
|
||||||
|
// test
|
||||||
|
|
||||||
|
map.put("sendTelNo", sendTelNo); // 송신자 번호
|
||||||
|
map.put("trId", trId); // 시스템 구분자
|
||||||
|
|
||||||
|
String sendMsg = (String) map.get("sendMsg");
|
||||||
|
int bytes = sendMsg.getBytes("euc-kr").length;
|
||||||
|
|
||||||
|
String rpplPhone = (String) map.get("rpplPhone");
|
||||||
|
String rpplEmail = (String) map.get("rpplEmail");
|
||||||
|
String rpplSmsYn = (String) map.get("rpplSmsYn");
|
||||||
|
String rpplEmailYn = (String) map.get("rpplEmailYn");
|
||||||
|
|
||||||
|
String emailResult = "N";
|
||||||
|
if (rpplEmailYn != null && rpplEmailYn.equals("Y") && StringUtil2.isNotEmpty(rpplEmail)) { // 메일 수신여부
|
||||||
|
// emailResult = insertEmailSend(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("emailSendResult", emailResult);
|
||||||
|
|
||||||
|
if (rpplSmsYn != null && rpplSmsYn.equals("Y") && StringUtil2.isNotEmpty(rpplPhone)) { // 문자 수신여부
|
||||||
|
if (bytes > 90) {
|
||||||
|
sMSOracleDAO.insertMmsSend(map); // SMS 등록 장문 > SMS DB(오라클)
|
||||||
|
adjReqMgrDAO.insertAdrMmsSend(map); // SMS 이력 등록 장문 > 전자조정
|
||||||
|
} else {
|
||||||
|
sMSOracleDAO.insertSmsSend(map); // SMS 등록 단문 > SMS DB(오라클)
|
||||||
|
adjReqMgrDAO.insertAdrSmsSend(map); // SMS 이력 등록 단문 > 전자조정
|
||||||
|
}
|
||||||
|
//sms 발송 관리 테이블에 저장
|
||||||
|
msgMgrDAO.insertAdrSmsLog(map); // SMS 이력 등록 단문 > 전자조정
|
||||||
|
} else { // 메일만 보낼시 단문테이블에라도 이력 등록
|
||||||
|
adjReqMgrDAO.insertAdrSmsSend(map); // SMS 이력 등록 단문 > 전자조정
|
||||||
|
//sms 발송 관리 테이블에 저장
|
||||||
|
msgMgrDAO.insertAdrSmsLog(map); // SMS 이력 등록 단문 > 전자조정
|
||||||
|
}
|
||||||
|
|
||||||
|
result = "succ";
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Exception Occured!!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGGER.debug("SMS 전송DB 등록 결과:[" + result +"]");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1040,6 +1040,24 @@
|
|||||||
|
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="apmDAO.selectAdrMemo" parameterClass="ApmVO" resultClass="ApmVO">
|
||||||
|
|
||||||
|
SELECT adr_seq AS adrSeq,
|
||||||
|
adr_cn AS adrCn
|
||||||
|
FROM adr_mgr_master
|
||||||
|
WHERE adr_seq = #adrSeq#
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="apmDAO.updateAdrMemo" parameterClass="ApmVO">
|
||||||
|
|
||||||
|
UPDATE adr_mgr_master
|
||||||
|
SET adr_cn = #adrCn#,
|
||||||
|
last_updusr_id = #lastUpdusrId#,
|
||||||
|
last_updt_pnttm = NOW()
|
||||||
|
WHERE adr_seq = #adrSeq#
|
||||||
|
|
||||||
|
</update>
|
||||||
|
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,90 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>사건메모</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javascript">
|
||||||
|
function fnMemo(p){
|
||||||
|
|
||||||
|
var form = document.memoForm;
|
||||||
|
|
||||||
|
if(p == 'insert'){
|
||||||
|
form.adrCn.value = $('#memo').val();
|
||||||
|
}else if(p == 'modify'){
|
||||||
|
form.adrCn.value = $('#memo').val();
|
||||||
|
}else if(p == 'delete'){
|
||||||
|
form.adrCn.value = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = new FormData(form);
|
||||||
|
|
||||||
|
if(confirm("사건메모를 등록하시겠습니까?")){
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "/kccadr/adjPgrMgr/apm/popup/updateAdrMemoAjax.do",
|
||||||
|
async:false,
|
||||||
|
data: data,
|
||||||
|
dataType:'json',
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
cache: false,
|
||||||
|
success: function (returnData, status) {
|
||||||
|
if(status == 'success'){
|
||||||
|
alert("메모가 등록되었습니다.");
|
||||||
|
location.reload(true);
|
||||||
|
} else if(status == 'fail') {
|
||||||
|
alert("처리중 오류가 발생하였습니다.");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (e) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form id="memoForm" name="memoForm" onsubmit="return false;" method="post">
|
||||||
|
<input type="hidden" name="adrSeq" value="<c:out value="${apmVO.adrSeq}" />" />
|
||||||
|
<input type="hidden" id="adrCn" name="adrCn" value=""/>
|
||||||
|
</form>
|
||||||
|
<div class="area_popup supm_popup" style="width: 800px;">
|
||||||
|
<div class="cont_popup">
|
||||||
|
<p class="tb_tit">사건메모</p>
|
||||||
|
<table class="pop_tbType01">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>내용</th>
|
||||||
|
<td>
|
||||||
|
<p><textarea rows="20" cols="30" id="memo" name="memo"><c:out value="${memoVO.adrCn}"/></textarea></p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="btn_wrap btn_layout04">
|
||||||
|
<c:if test="${memoVO.adrCn eq '' || memoVO.adrCn eq null}">
|
||||||
|
<button type="button" class="btnType06" onclick="fnMemo('insert'); return false;">등록</button>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${memoVO.adrCn ne '' && memoVO.adrCn ne null}">
|
||||||
|
<button type="button" class="btnType06" onclick="fnMemo('modify'); return false;">수정</button>
|
||||||
|
<button type="button" class="btnType02" onclick="fnMemo('delete'); return false;">삭제</button>
|
||||||
|
</c:if>
|
||||||
|
<button type="button" class="btnType03" onclick="window.close()">닫기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue
Block a user