This commit is contained in:
wyh 2023-06-21 12:41:34 +09:00
commit f4067f3cc9
12 changed files with 258 additions and 16 deletions

View File

@ -275,6 +275,29 @@ public class MjonMsgController {
return redirectUrlMaker.getRedirectUrl();
}
/**
* 알림톡 리스트 스미싱 on off 처리
* @param searchVO
* @param model
* @return "/uss/ion/msg/SendMsgTestList.do"
* @throws Exception
*/
@RequestMapping("/uss/ion/msg/MsgUsersAtSmishingUpdate.do")
public String msgUsersAtSmishingUpdate(@RequestParam("checkedIdForDel") String checkedIdForUpt, @ModelAttribute("userManageVO") UserManageVO userManageVO, RedirectAttributes redirectAttributes, Model model) throws Exception {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
return "uat/uia/EgovLoginUsr";
}
userManageService.updateUserAtSmishingYn(userManageVO, checkedIdForUpt);
//redirectAttributes.addFlashAttribute("message", "알림톡 스미싱의심 여부가 정상적으로 수정되었습니다.");
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/kakaoat/SendKakaoATList.do?pageIndex="+userManageVO.getPageIndex());
return redirectUrlMaker.getRedirectUrl();
}
/**
* 문자전송 테스트 리스트

View File

@ -177,12 +177,20 @@ public interface EgovUserManageService {
public UserManageVO selectSmishingYnUserInfo(UserManageVO userManageVO) throws Exception;
public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) throws Exception;
// 스미싱의심 /오프
public void updateUserSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception;
// 스미싱의심 /오프 - 상세에서 단일로
public void updateOneUserSmishingYn(UserManageVO userManageVO) throws Exception;
// 알림톡 스미싱의심 /오프
public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception;
// 알림톡 스미싱의심 /오프 - 상세에서 단일로
public void updateOneUserAtSmishingYn(UserManageVO userManageVO) throws Exception;
// 후불제 여부 저장
public void updateUserPrePaymentYn(UserManageVO userManageVO) throws Exception;

View File

@ -532,7 +532,14 @@ public class MberManageVO extends UserDefaultVO{
private String smishingYn; // 스미싱 의심여부
private String vipYn; // VIP 여부
private String atSmishingYn; // 알림톡 스미싱 의심여부
public String getAtSmishingYn() {
return atSmishingYn;
}
public void setAtSmishingYn(String atSmishingYn) {
this.atSmishingYn = atSmishingYn;
}
public String getPrePaymentYn() {
return prePaymentYn;
}

View File

@ -204,7 +204,14 @@ public class UserManageVO extends UserDefaultVO{
private float cash;
private String blineCode; // B라인코드
private String recommendId; // 추천아이디
private String atSmishingYn; // 알림톡 스미싱 의심여부
public String getAtSmishingYn() {
return atSmishingYn;
}
public void setAtSmishingYn(String atSmishingYn) {
this.atSmishingYn = atSmishingYn;
}
public String getBlineCode() {
return blineCode;
}

View File

@ -497,6 +497,11 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
return userManageDAO.selectSmishingYnUserInfo(userManageVO);
}
@Override
public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) {
return userManageDAO.selectAtSmishingYnUserInfo(userManageVO);
}
// 스미싱의심 /오프
public void updateUserSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception {
if(!"".equals(checkedIdForUpt)) {
@ -560,6 +565,69 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
}
// 알림톡 스미싱의심 /오프
public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception {
if(!"".equals(checkedIdForUpt)) {
String [] uptIdAll = checkedIdForUpt.split(",");
String[] uptId = Arrays.stream(uptIdAll).distinct().toArray(String[]::new);
for (int i=0; i<uptId.length ; i++){
// 업데이트
userManageVO.setMberId(uptId[i]);
userManageDAO.updateUserAtSmishingYn(userManageVO);
// 법인폰 알림문자 발송
UserManageVO rtnVO = new UserManageVO();
rtnVO = selectAtSmishingYnUserInfo(userManageVO);
if (rtnVO.getAtSmishingYn().equals("Y")) {
// 법인폰 알람여부 체크
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
// SMS 체크
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
// 스미싱의심 SMS 알림전송
mjonNoticeSendUtil.smishingSmsNoticeSend("알림톡 스미싱 의심!", rtnVO.getMberId(), rtnVO.getMberNm());
}
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] 알림톡 스미싱 의심! - " + rtnVO.getMberNm() +"("+ rtnVO.getMberId() + ")";
mjonCommon.sendSimpleSlackMsg(msg);
}
}
}
}
}
// 알림톡 스미싱의심 /오프 단일
public void updateOneUserAtSmishingYn(UserManageVO userManageVO) throws Exception {
// 업데이트
userManageDAO.updateUserAtSmishingYn(userManageVO);
// 법인폰 알림문자 발송
UserManageVO rtnVO = new UserManageVO();
rtnVO = selectAtSmishingYnUserInfo(userManageVO);
if (rtnVO.getAtSmishingYn().equals("Y")) {
// 법인폰 알람여부 체크
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
// SMS 체크
if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
// 스미싱의심 SMS 알림전송
mjonNoticeSendUtil.smishingSmsNoticeSend("알림톡 스미싱 의심!", rtnVO.getMberId(), rtnVO.getMberNm());
}
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
// Slack 메시지 발송(단순본문)
String msg = "[문자온] 알림톡 스미싱 의심! - " + rtnVO.getMberNm() +"("+ rtnVO.getMberId() + ")";
mjonCommon.sendSimpleSlackMsg(msg);
}
}
}
// 후불제 여부 저장
public void updateUserPrePaymentYn(UserManageVO userManageVO) throws Exception {
userManageDAO.updateUserPrePaymentYn(userManageVO);

View File

@ -271,11 +271,20 @@ public class UserManageDAO extends EgovAbstractDAO{
return (UserManageVO) select("userManageDAO.selectSmishingYnUserInfo",userManageVO);
}
public UserManageVO selectAtSmishingYnUserInfo(UserManageVO userManageVO) {
return (UserManageVO) select("userManageDAO.selectAtSmishingYnUserInfo",userManageVO);
}
// 스미싱의심 /오프
public void updateUserSmishingYn(UserManageVO userManageVO){
update("userManageDAO.updateUserSmishingYn",userManageVO);
}
// 알림톡 스미싱의심 /오프
public void updateUserAtSmishingYn(UserManageVO userManageVO){
update("userManageDAO.updateUserAtSmishingYn",userManageVO);
}
// 후불제 여부 저장
public void updateUserPrePaymentYn(UserManageVO userManageVO){
update("userManageDAO.updateUserPrePaymentYn",userManageVO);

View File

@ -2418,6 +2418,38 @@ public class EgovUserManageController {
return modelAndView;
}
// 알림톡 스미싱의심 여부 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do")
public ModelAndView EgovGnrlUpdateUserAtSmishingAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
Boolean isSuccess = true;
String msg = "";
try {
// 미인증 사용자에 대한 보안처리
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(!isAuthenticated) {
isSuccess = false;
msg = "로그인이 필요합니다.";
}
else {
userManageService.updateOneUserAtSmishingYn(userManageVO);
}
} catch (Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// VIP 여부 변경
@RequestMapping("/uss/umt/user/EgovGnrlUpdateUserVIPAjax.do")
public ModelAndView EgovGnrlUpdateUserVIPAjax(@ModelAttribute("userManageVO") UserManageVO userManageVO) throws Exception {

View File

@ -347,6 +347,7 @@
M2.msgNoticetalkTmpKey ,
M2.yellowId ,
M2.userNm ,
M2.atSmishingYn ,
( SELECT COUNT(0)
FROM MJ_MSG_DATA C
WHERE C.DEL_FLAG = 'N'
@ -450,6 +451,7 @@
MSG_NOTICETALK_TMP_KEY AS msgNoticetalkTmpKey ,
MKPI.YELLOW_ID AS yellowId ,
LTM.MBER_NM AS userNm ,
LTM.AT_SMISHING_YN AS atSmishingYn,
BIZ_UMID AS bizUmid,
BL.CALL_STATUS AS callStatus,
M.BIZ_KAKAO_RESEND_YN AS bizKakaoResendYn

View File

@ -729,7 +729,8 @@
A.SMISHING_YN smishingYn,
A.VIP_YN vipYn,
A.EXCEPT_SPAM_YN AS exceptSpamYn,
A.HOTLINE_AGENT_CODE AS hotlineAgentCode
A.HOTLINE_AGENT_CODE AS hotlineAgentCode,
A.AT_SMISHING_YN atSmishingYn
FROM LETTNGNRLMBER A
LEFT JOIN MJ_CANDIDATE_INFO MCI
ON A.MBER_ID = MCI.MBER_ID

View File

@ -1328,6 +1328,15 @@
WHERE MBER_ID = #mberId#
</select>
<select id="userManageDAO.selectAtSmishingYnUserInfo" parameterClass="userVO" resultClass="userVO">
SELECT
MBER_ID AS mberId,
MBER_NM AS mberNm,
AT_SMISHING_YN AS atSmishingYn
FROM LETTNGNRLMBER
WHERE MBER_ID = #mberId#
</select>
<update id="userManageDAO.updateUserSmishingYn" parameterClass="userVO">
UPDATE
LETTNGNRLMBER
@ -1337,6 +1346,15 @@
AND MBER_ID = #mberId#
</update>
<update id="userManageDAO.updateUserAtSmishingYn" parameterClass="userVO">
UPDATE
LETTNGNRLMBER
SET
AT_SMISHING_YN = #atSmishingYn#
WHERE 1=1
AND MBER_ID = #mberId#
</update>
<update id="userManageDAO.updateUserPrePaymentYn" parameterClass="userVO">
UPDATE
LETTNGNRLMBER

View File

@ -1182,6 +1182,45 @@ function fnMberSmishingYn(){
}
}
//알림톡 스미싱의심 여부
function fnMberAtSmishingYn(){
var form = document.mberManageVO;
var atSmishingYn = form.atSmishingYn.value;
if(confirm("알림톡 스미싱의심 여부를 변경하시겠습니까?")){
$.ajax({
type: "POST",
url: "/uss/umt/user/EgovGnrlUpdateUserAtSmishingAjax.do",
data: {"atSmishingYn" : atSmishingYn, "mberId" : "${mberManageVO.mberId}"},
dataType:'json',
async: false,
success: function (data, status) {
if (data.isSuccess) {
alert("변경 완료했습니다.");
}
else {
alert(data.msg);
}
},
beforeSend: function () {
//로딩창 show
$('.loading_layer').addClass('active');
},
complete: function () {
//로딩창 hide
$('.loading_layer').removeClass('active');
},
error: function (e) {
alert("에러가 발생했습니다."); console.log("ERROR : ", e);
}
});
}
}
// VIP 여부
function fnMberVIPYn(){
var form = document.mberManageVO;
@ -2535,6 +2574,20 @@ function fnMberExceptSpamYn(){
</select>
</td>
</tr>
<%--
<tr>
<th>스미싱 의심(카톡)</th>
<td>
<select name="atSmishingYn" id="atSmishingYn" style="width:150px;" onFocus='this.initialSelect = this.selectedIndex;' onChange="javascript:fnMberAtSmishingYn();">
<option value="Y" <c:if test="${mberManageVO.atSmishingYn == 'Y'}">selected="selected"</c:if>>온(On)</option>
<option value="N" <c:if test="${mberManageVO.atSmishingYn == 'N'}">selected="selected"</c:if>>오프(Off)</option>
</select>
</td>
<th></th>
<td>
</td>
</tr>
--%>
<tr>
<th>전용 전송사</th>
<td>
@ -2969,6 +3022,20 @@ function fnMberExceptSpamYn(){
</select>
</td>
</tr>
<%--
<tr>
<th>스미싱 의심(카톡)</th>
<td>
<select name="atSmishingYn" id="atSmishingYn" style="width:150px;" onFocus='this.initialSelect = this.selectedIndex;' onChange="javascript:fnMberAtSmishingYn();">
<option value="Y" <c:if test="${mberManageVO.atSmishingYn == 'Y'}">selected="selected"</c:if>>온(On)</option>
<option value="N" <c:if test="${mberManageVO.atSmishingYn == 'N'}">selected="selected"</c:if>>오프(Off)</option>
</select>
</td>
<th></th>
<td>
</td>
</tr>
--%>
<tr>
<th>전용 전송사</th>
<td>

View File

@ -295,8 +295,8 @@ function fnSetCalMonth(val) {
}
//스미싱의심 온/오프
function fnSmishingUpdate(flag) {
//알림톡 스미싱의심 온/오프
function fnAtSmishingUpdate(flag) {
if($("input:checkbox[name='checkField']").is(":checked")==false){
alert("선택된 항목이 없습니다.");
return;
@ -322,15 +322,15 @@ function fnSmishingUpdate(flag) {
if(checkedIds.length > 0) {
var msg = "";
if(flag == 'on') {
document.listForm.smishingYn.value='Y';
msg = "선택하신 사용자의 스미싱의심을 On 하시겠습니까?";
document.listForm.atSmishingYn.value='Y';
msg = "선택하신 사용자의 알림톡 스미싱의심을 On 하시겠습니까?";
} else {
document.listForm.smishingYn.value='N';
msg = "선택하신 사용자의 스미싱의심을 Off 하시겠습니까?";
document.listForm.atSmishingYn.value='N';
msg = "선택하신 사용자의 알림톡 스미싱의심을 Off 하시겠습니까?";
}
if(confirm(msg)){
document.listForm.checkedIdForDel.value=checkedIds;
document.listForm.action = "<c:url value='/uss/ion/msg/MsgUsersSmishingUpdate.do'/>";
document.listForm.action = "<c:url value='/uss/ion/msg/MsgUsersAtSmishingUpdate.do'/>";
document.listForm.submit();
}
}
@ -369,7 +369,7 @@ function fnSmishingUpdate(flag) {
<input type="hidden" name="ntceEndde" id="ntceEndde" value="">
<input type="hidden" name="adminSmsNoticeYn" value=""/>
<input name="checkedIdForDel" type="hidden" />
<input type="hidden" name="smishingYn" value=""/>
<input type="hidden" name="atSmishingYn" value=""/>
<div class="contWrap">
<div class="pageTitle">
@ -506,7 +506,7 @@ function fnSmishingUpdate(flag) {
<c:out value="${result.yellowId}"/>
</td>
<%-- <td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.smishingYn eq 'Y'}">class="smishing" style="cursor:pointer;"</c:if><c:if test="${result.smishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
<%-- <td onclick="fn_detail_list('${result.msgGroupId}'); return false;" <c:if test="${result.atSmishingYn eq 'Y'}">class="atSmishingYn" style="cursor:pointer;"</c:if><c:if test="${result.atSmishingYn eq 'N'}">style="cursor:pointer;"</c:if>>
<c:out value="${result.callFrom}"/>
</td> --%>
@ -552,7 +552,7 @@ function fnSmishingUpdate(flag) {
<c:out value="${result.msgTypeName}"/>
</td>
<%-- <td><c:out value="${result.conectMthdTxt}"/></td> --%>
<%-- <td <c:if test="${result.smishingYn eq 'Y'}">class="smishing"</c:if>>
<%-- <td <c:if test="${result.atSmishingYn eq 'Y'}">class="atSmishingYn"</c:if>>
<c:out value="${result.agentCodeTxt}"/>
</td> --%>
<%-- <td><c:out value="${result.rsltNet}"/></td> --%>
@ -565,10 +565,10 @@ function fnSmishingUpdate(flag) {
</table>
</div>
<div class="btnWrap" style="margin-bottom: 15px;">
<!-- <input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmsNotiUpdate('on'); return false;" value="법인폰 ON">
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmsNotiUpdate('off'); return false;" value="법인폰 OFF">
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmishingUpdate('on'); return false;" value="스미싱 ON">
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnSmishingUpdate('off'); return false;" value="스미싱 OFF"> -->
<!--
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnAtSmishingUpdate('on'); return false;" value="알림톡 스미싱 ON">
<input type="button" class="btnType2" style="padding:5px 10px" onclick="fnAtSmishingUpdate('off'); return false;" value="알림톡 스미싱 OFF">
-->
</div>
<!-- 페이지 네비게이션 시작 -->