이준호 전자조정시스템 고도화 커밋

- 발송수단별 사용여부 커밋
This commit is contained in:
LJH 2022-12-08 14:13:38 +09:00
parent 1be2cb475d
commit c04943cdc4
9 changed files with 250 additions and 11 deletions

View File

@ -1,5 +1,7 @@
package kcc.kccadr.cmm.service;
import java.util.Map;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
@ -43,4 +45,8 @@ public interface SMSOracleService {
public String insertSmsOtpCertNumSend(AdjReqMgrVO adjReqMgrVO) throws Exception;
public String selectAdrOtpCertNumSmsLog(AdjReqMgrVO adjReqMgrVO) throws Exception;
public EgovMap selectAdrSendType() throws Exception;
public void updateAdrSendType(Map<String, Object> map) throws Exception;
}

View File

@ -173,7 +173,7 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
apiVO.setMessage(sendMsg);
if("Y".equals(alrimtalkYn)) {
// kakaoAtSendDAO.insertKakaoAtSendBatch(apiVO);
kakaoAtSendDAO.insertKakaoAtSendBatch(apiVO);
}
result = "succ";
@ -778,5 +778,16 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
return msgMgrDAO.selectAdrOtpCertNumSmsLog(adjReqMgrVO);
}
@Override
public EgovMap selectAdrSendType() throws Exception {
//전송 수단별 발송여부
EgovMap sendTypeMap = msgMgrDAO.selectAdrSendType();
return sendTypeMap;
}
@Override
public void updateAdrSendType(Map<String, Object> map) throws Exception {
msgMgrDAO.updateAdrSendType(map);
}
}

View File

@ -23,7 +23,7 @@ import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
@Service("SchedulerUtil")
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
//@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
public class SchedulerUtil {
@Value("#{globalSettings['Globals.BizPpurio.siteUrl']}")
@ -47,7 +47,7 @@ public class SchedulerUtil {
//10분마다 실행
@Scheduled(cron = "0 0/10 * * * *")
@SchedulerLock(name = "kakaoAtSendPrcs", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
// @SchedulerLock(name = "kakaoAtSendPrcs", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
public void kakaoAtSendPrcs() throws Exception {
String ip = null;
@ -82,8 +82,8 @@ public class SchedulerUtil {
}
@Bean
public LockProvider lockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(dataSource);
}
// @Bean
// public LockProvider lockProvider(DataSource dataSource) {
// return new JdbcTemplateLockProvider(dataSource);
// }
}

View File

@ -1,6 +1,7 @@
package kcc.kccadr.msg.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
@ -96,4 +97,8 @@ public class MsgMgrDAO extends EgovAbstractDAO {
return (EgovMap) select("MsgMgrDAO.selectAdrSendType");
}
public void updateAdrSendType(Map<String, Object> map) throws Exception {
update("msgMgrDAO.updateAdrSendType", map);
}
}

View File

@ -1,6 +1,7 @@
package kcc.kccadr.msg.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@ -10,15 +11,20 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.kccadr.cmm.service.SMSOracleService;
import kcc.kccadr.msg.service.MsgMgrService;
import kcc.kccadr.msg.service.MsgMgrVO;
import kcc.kccadr.msg.service.SmsMgrVO;
@ -39,6 +45,9 @@ public class MsgMgrController {
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name = "SMSOracleService")
private SMSOracleService sMSOracleService;
/**
* auth : 우영두
* 전자조정 발송문구 목록 화면
@ -281,6 +290,46 @@ public class MsgMgrController {
return "kccadr/msg/sendMsgMgrList";
}
/**
* auth : 이준호
* 전자조정 발송수단별 사용여부
* date : 2022.12.07
*/
@RequestMapping("/kccadr/msg/sendTypeSelectList.do")
public String sendTypeSelectList(ModelMap model) throws Exception {
EgovMap sendTypeSelect = sMSOracleService.selectAdrSendType();
model.addAttribute("sendTypeSelect", sendTypeSelect);
return "kccadr/msg/sendTypeSelectList";
}
/**
* auth : 이준호
* 전자조정 발송수단별 사용여부
* date : 2022.12.07
*/
@ResponseBody
@RequestMapping(value = "/kccadr/msg/sendTypeSelectUpdateAjax.do", method = { RequestMethod.POST })
public ModelAndView sendTypeSelectUpdateAjax(
@RequestParam Map<String, Object> map,
ModelMap model ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
sMSOracleService.updateAdrSendType(map);
modelAndView.addObject("result", "SUCCESS");
modelAndView.addObject("message", "변경되었습니다.");
} catch (Exception e) {
modelAndView.addObject("result", "FAIL");
}
return modelAndView;
}
public void decryptInfomation(List<SmsMgrVO> list, SmsMgrVO info){
if(CollectionUtils.isNotEmpty(list)){

View File

@ -397,9 +397,9 @@ public class EgovLoginController {
//if (ProfileUtil.isProd()) {
LOGGER.debug("@ prod @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Start");
//sMSOracleService.selectOracleTest(); // 연동 테스트. 콘솔 로그 확인
//AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
//sMSOracleService.insertSmsSend(adjReqMgrVO);
sMSOracleService.insertSmsSendTest();
AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
sMSOracleService.insertSmsSend(adjReqMgrVO);
// sMSOracleService.insertSmsSendTest();
LOGGER.debug("@ prod @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@End");
//}
//

View File

@ -284,4 +284,19 @@
</select>
<update id="msgMgrDAO.updateAdrSendType" parameterClass="java.util.Map">
UPDATE adr_slct_send_type
SET
<isEqual property="type" compareValue="emailYn">
email_yn = #value#
</isEqual>
<isEqual property="type" compareValue="smsYn">
sms_yn = #value#
</isEqual>
<isEqual property="type" compareValue="alrimtalkYn">
alrimtalk_yn = #value#
</isEqual>
</update>
</sqlMap>

View File

@ -0,0 +1,147 @@
<!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" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : sendMsgMgrList.jsp
* @Description : 발송문자 리스트
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2022.12.7 이준호 최초 생성
* @author 이준호
* @since 2022.12.7
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
</style>
<script type="text/javascript">
$(document).ready(function(){
$("input[name$='Yn']:radio").change(function () {
var url = "/kccadr/msg/sendTypeSelectUpdateAjax.do";
var data = {
"type": $(this).attr('name'),
"value": $(this).val()
}
$.ajax({
url: url,
type: 'POST',
data: data,
dataType: 'json',
success: function (returnData, status) {
console.log(returnData.result);
if(returnData.result == 'SUCCESS'){
alert(returnData.message)
}else{
alert("요청에 실패하였습니다.");
}
},
error: function (e) { alert("요청에 실패하였습니다."); console.log("ERROR : ", e); }
});
});
});
function fncGoList(){
linkPage(1);
}
</script>
<title>발송수단별 사용여부</title>
</head>
<body>
<form id="listForm" name="listForm" method="post">
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>발송문자 목록</h2>
<ul class="cont_nav">
<li class="home">
<a href="/">
<i></i>
</a>
</li>
<li>
<p>발송 관리</p>
</li>
<li>
<p>발송문자 관리</p>
</li>
<li><span class="cur_nav">발송문자 목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
</colgroup>
<thead>
<tr>
<th>구분</th>
<th>이메일발송</th>
<th>문자발송</th>
<th>알림톡발송</th>
</tr>
</thead>
<tbody>
<tr>
<td>
사용여부
</td>
<td>
<div class="radio_wrap">
<input ${sendTypeSelect.emailYn eq 'Y' ? 'checked' : ''} value="Y" type="radio" name="emailYn" id="emailY">
<label for="emailY">사용</label>
<input ${sendTypeSelect.emailYn eq 'N' ? 'checked' : ''} value="N" type="radio" name="emailYn" id="emailN">
<label for="emailN">미사용</label>
</div>
</td>
<td>
<div class="radio_wrap">
<input ${sendTypeSelect.smsYn eq 'Y' ? 'checked' : ''} value="Y" type="radio" name="smsYn" id="smsY">
<label for="smsY">사용</label>
<input ${sendTypeSelect.smsYn eq 'N' ? 'checked' : ''} value="N" type="radio" name="smsYn" id="smsN">
<label for="smsN">미사용</label>
</div>
</td>
<td>
<div class="radio_wrap">
<input ${sendTypeSelect.alrimtalkYn eq 'Y' ? 'checked' : ''} value="Y" type="radio" name="alrimtalkYn" id="alrimtalkY">
<label for="alrimtalkY">사용</label>
<input ${sendTypeSelect.alrimtalkYn eq 'N' ? 'checked' : ''} value="N" type="radio" name="alrimtalkYn" id="alrimtalkN">
<label for="alrimtalkN">미사용</label>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</form>
</body>
</html>

View File

@ -276,6 +276,12 @@ table select+button{vertical-align: middle;}
.dir_input{width: 200px; margin-left: 5px;}
.tbType01 .check_wrap,.tbType01 .radio_wrap{display: inline-flex; max-width: calc(100% - 120px); vertical-align: middle; text-align: left; align-items: center; flex-wrap: wrap;}
.tbType01 .check_wrap:only-child,.tbType01 .radio_wrap:only-child{max-width: 100%;}
.tbType01 .check_wrap span,.tbType01 .radio_wrap span{margin-right: 30px; display: inline-block;}
.tbType01 .check_wrap input,.tbType01 .radio_wrap input{margin: 0; vertical-align: middle; margin-top: 1.5px;}
.tbType01 .check_wrap label,.tbType01 .radio_wrap label{width: auto; height: auto; clip: unset; font-size: 18px; position:static; font-weight: 300; color: #666; vertical-align: middle; margin: 0; margin-left: 5px; margin-right:10px; line-height: 2;}
.tbType02{border-top: 1px solid #000; border-bottom: 1px solid #cccccc;}
.tbType02 table{width: 100%; table-layout: fixed}
.tbType02 tr{border-bottom: 0.01em solid #e5e5e5;}