서비스관리 / 알림톡 템플릿관리 추가

This commit is contained in:
kimre
2022-06-20 13:50:46 +09:00
parent 1d46263735
commit 460d6e03b8
147 changed files with 10360 additions and 6618 deletions

View File

@@ -130,10 +130,10 @@ max-height: 90vh; overflow: auto;}/*스크린 height 100%를 벗어나는 긴
.popup .pop-cont {}
.popup .pop-cont p {font-size: 16px; color: #666666; font-weight: 400; letter-spacing: -0.8px; line-height: 100%;}
.popup .pop-cont p + p {margin-top: 10px;}
.popup .pop-btn1 {display: flex; justify-content: flex-start; align-items: center; margin: 35px 0 25px;}
.popup .pop-btn2 {display: flex; justify-content: space-between; align-items: center; margin: 35px 0 25px;}
.popup .pop-btn1 button {width: 49%; height: 40px; font-size: 16px; font-weight: 400; letter-spacing: -1.1px;}
.popup .pop-btn2 button {width: 49%; height: 40px; font-size: 16px; font-weight: 400; letter-spacing: -1.1px;}
.popup .popup-btn1 {display: flex; justify-content: flex-start; align-items: center; margin: 35px 0 25px;}
.popup .popup-btn2 {display: flex; justify-content: space-between; align-items: center; margin: 35px 0 25px;}
.popup .popup-btn1 button {width: 49%; height: 40px; font-size: 16px; font-weight: 400; letter-spacing: -1.1px;}
.popup .popup-btn2 button {width: 49%; height: 40px; font-size: 16px; font-weight: 400; letter-spacing: -1.1px;}

View File

@@ -319,7 +319,7 @@ header .user_wrap .user_info .logout {
.contents {
padding: 0 4.16vw;
width: 100%;
width: calc(100% - 240px);
-webkit-box-flex: 1;
-ms-flex: 1 1 0px;
flex: 1 1 0;
@@ -427,7 +427,7 @@ header .user_wrap .user_info .logout {
margin-left: 0;
}
.contents .select_box {
.contents .select_box{
display: -webkit-box;
display: -ms-flexbox;
display: flex;
@@ -474,7 +474,7 @@ header .user_wrap .user_info .logout {
margin-top:-7px;
}
.contents .input_box {
.contents .input_box{
display: -webkit-box;
display: -ms-flexbox;
display: flex;
@@ -567,11 +567,7 @@ header .user_wrap .user_info .logout {
background: #fff url(../images/icon-calender.png) no-repeat right 6% center;
}
.contents .input_box.cal input + input{
margin-left: 4%;
}
.contents .input_box.cal .description{
position: absolute; margin: 10px 0 0 10px; color:#666; font-size: 13px; font-weight: 400;
margin-left: 5%;
}
.contents .input_box.cal.one{
@@ -586,6 +582,16 @@ header .user_wrap .user_info .logout {
margin-right: 10px;
}
.contents .input_box.cal .term{
display: flex;
justify-content: space-around;
align-items: center;
}
.contents .input_box.cal .term input:nth-child(1){
margin-right: 4%;
}
.contents .input_box .search-box {
background: #fff url(../images/icon-search.png) no-repeat 6% center/14px auto;
padding-left: 43px;
@@ -806,7 +812,7 @@ header .user_wrap .user_info .logout {
/*pagination*/
.contents .pagination .arrow-btn button{
.pagination .arrow-btn button{
border:none;
padding: 0 5px;
}
@@ -828,27 +834,37 @@ header .user_wrap .user_info .logout {
.btn-prev, .btn-next{background-position: 0px -24px;}
.btn-prev:hover, .btn-next:hover{background-position: 0px -72px;}
.contents .pagination {
.pagination {
display:flex;
justify-content: center;
margin-bottom: 50px;
}
.contents .pagination ul{
.pagination ul{
display:flex;
align-items:center;
}
.contents .pagination ul li a{
.pagination ul .active a{
color:#eb008b;
text-decoration: underline;
}
.pagination ul li a{
color:#9a9a9a;
font-size: 14px;
padding: 0 15px;
}
.contents .pagination ul li a:hover{
.pagination ul li a:hover{
color:#000;
text-decoration: underline;
}
.popup.popup_form .pagination{
margin-top:25px;
}
/*contents table 추가*/
.contents .table table .arrow_box {
@@ -903,16 +919,18 @@ header .user_wrap .user_info .logout {
}
.contents .table.calculate.scroll{
max-width: 1240px;
overflow: auto;
width: calc(100% - 80px);
overflow-x: auto;
margin: 0 auto;
margin-bottom: 60px;
padding: 0;
padding: 0 0 10px 0;
}
.contents .table.calculate.scroll div{
min-width: 1400px;
padding-bottom: 10px;
.contents .table.calculate.scroll table{
min-width: 1500px;
width:100%;
table-layout: fixed;
white-space: nowrap;
}
.contents .table table .total{
@@ -937,6 +955,12 @@ header .user_wrap .user_info .logout {
padding-left: 10px;
}
.contents .table.table_form .radio .label_group label{
display: flex;
height: 30px;
align-items: center;
}
.contents .table {
color: #333333;
padding: 0 40px;
@@ -1183,17 +1207,17 @@ header .user_wrap .user_info .logout {
margin-bottom: -1px;
}
.popup.popup_form .pop-btn2 {
.popup.popup_form .popup-btn2 {
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
}
.popup.popup_form .pop-btn2 button {
.popup.popup_form .popup-btn2 button {
width: 30%;
}
.popup.popup_form .pop-btn2 button:last-child {
.popup.popup_form .popup-btn2 button:last-child {
margin-left: 10px;
}
@@ -1402,19 +1426,19 @@ header .user_wrap .user_info .logout {
margin-top: 20px;
}
.popup.popup_form .pop-btn2 .download {
.popup.popup_form .popup-btn2 .download {
display: flex;
justify-content: center;
align-items: center;
}
.popup.popup_form .pop-btn2.bulk{
.popup.popup_form .popup-btn2.bulk{
justify-content: space-between;
margin-bottom: 20px;
}
.popup.popup_form .pop-btn2.bulk button{
.popup.popup_form .popup-btn2.bulk button{
width: 49%;
display: flex;
-webkit-box-pack: center;
@@ -1426,7 +1450,7 @@ header .user_wrap .user_info .logout {
font-size: 16px;
}
.popup.popup_form .pop-btn2.bulk button:nth-child(1)::before{
.popup.popup_form .popup-btn2.bulk button:nth-child(1)::before{
content: '';
background: url(../images/icon-f-download.png) no-repeat 0 0;
width: 23px;
@@ -1434,7 +1458,7 @@ header .user_wrap .user_info .logout {
margin: 2px 5px 0 15px;
}
.popup.popup_form .pop-btn2.bulk button:nth-child(2)::before{
.popup.popup_form .popup-btn2.bulk button:nth-child(2)::before{
content: '';
background: url(../images/icon-f-upload.png) no-repeat 0 0;
width: 23px;
@@ -1450,39 +1474,41 @@ header .user_wrap .user_info .logout {
}
.popup.popup_form .attach button{
margin:0;
width: 35%;
margin: 0 10px 0 0;
width: 35%;
}
.popup.popup_form .attach .list{
width: 100%;
padding-bottom: 5px;
font-size: 16px;
}
.popup.popup_form .attach .file{
margin-left:10px;
margin-bottom: 0;
}
.popup.popup_form .attach p:not(.file){
color: #000;
width: 100%;
}
.popup.popup_form p + p{
padding-top:5px;
padding:0;
}
.popup.popup_form .file{
color: #656565;
margin-bottom: 18px;
display: inline-flex;
align-items: center;
font-size: 14px;
padding-bottom: 5px;
}
.popup-btn2.bulk + .file{
margin-bottom: 18px;
padding-bottom: 0;
}
.popup.popup_form .file button{
background: #e4e4e4 url(../images/icon-delete.png) no-repeat center center;
width: 24px;
height: 24px;
display: inline-block;
background: #e4e4e4;
width: 15px;
height: 15px;
border-radius: 50%;
position: relative;
top: 6px;
left: 5px;
border: none;
font-size: 10px;
margin: 0 0 0 5px;
}
.popup.popup_form.register{
@@ -1504,6 +1530,7 @@ header .user_wrap .user_info .logout {
.popup.popup_form.register .input_add div{
display: flex;
justify-content: space-between;
width:100%;
}
.popup.popup_form.register .input_add div input:nth-child(1){
@@ -1650,7 +1677,21 @@ header .user_wrap .user_info .logout {
.popup.popup_form table .input_add{
display: flex;
justify-content: space-between;
padding: 5px 0px 5px 0px;
padding: 5px 0px 5px 10px;
flex-wrap: wrap;
}
.popup.popup_form table .input_add input{
width: 85%;
}
.essential{
display: flex;
align-items: flex-start;
}
.essential span{
color:#eb008b;
padding-right: 3px;
}
textarea{
@@ -1668,5 +1709,32 @@ textarea:focus{
outline: 1px solid #000;
}
/*toggle*/
.contents .table table input[type="checkbox"] + label.toggle_switch { width: 72px; height: 28px; border-radius: 14px; border: 1px solid #b7b9be; background: #cecece; transition: all 0.3s; }
.contents .table table input[type="checkbox"] + label.toggle_switch:before { content:"미사용";position: absolute; display: block; width: 100%; height:100%; font-size: 14px; color:#fff; line-height: 28px; padding: 0 0 0 15px; font-family: 'SpoqaHanSansNeo', sans-serif; box-sizing: border-box; transition: all 0.3s; }
.contents .table table input[type="checkbox"] + label.toggle_switch:after { content:""; position: absolute; display: block; width:14px; height: 14px; top:50%; left: 7px; transform: translateY(-50%); background: #fff; border-radius: 100%; transition: all 0.5s; }
.contents .table table input[type="checkbox"]:checked + label.toggle_switch { border-color:#eb008b; background:#fff; }
.contents .table table input[type="checkbox"]:checked + label.toggle_switch:before { content:"사용"; color:#eb008b; padding: 0 15px 0 0; }
.contents .table table input[type="checkbox"]:checked + label.toggle_switch:after { background: #eb008b; left: 45px;}
/*datepicker*/
.datepicker{position: absolute; top: 336px; left: 381px; z-index: 1; display: block; padding: 24px 0; border: 1px solid #eceff1; background: #fff;box-shadow: 0 2px 4px 0 rgb(0 0 0 / 16%);border-radius: 5px;}
.datepicker .datepicker-head{margin-bottom: 28px;}
.datepicker .datepicker-title{text-align: center; font-size: 20px;}
.datepicker .datepicker-calender{margin: 0 30px; font-size: 12px;}
.datepicker .datepicker-calender td{padding: 7.5px; line-height: 15px;}
.datepicker .datepicker-calender td a{text-align: center; width: 15px; height: 15px; display: inline-block; color:#000;}
.datepicker .datepicker-calender tr td:last-child a{color:#5d7aff;}
.datepicker .datepicker-calender tr td:first-child a{color:#ff2e76;}
.datepicker .datepicker-head .datepicker-btn span{position: relative;}
.datepicker .datepicker-head .datepicker-prev span::after{position: absolute; left: 70px; top: 10px; content: ''; width: 10px; height: 10px; border-top: 2px solid #5f5f5f; border-right: 2px solid #5f5f5f; transform: rotate(225deg);}
.datepicker .datepicker-head .datepicker-next span::after{position: absolute; left: 185px; top: 10px; content: ''; width: 10px; height: 10px; border-top: 2px solid #5f5f5f; border-right: 2px solid #5f5f5f; transform: rotate(45deg);}
.datepicker .datepicker-calender td:hover:not(.disabled){background-color: #efefef; border-radius: 50%;}
.datepicker .datepicker-calender td:hover a{color:#000;}
.datepicker .datepicker-calender .today{background-color: #7c7c7c; border-radius: 50%;}
.datepicker .datepicker-calender .click{background-color: #eb008b; border-radius: 50%;}
.datepicker .datepicker-calender .click a, .datepicker .datepicker-calender .today a{color: #fff;}
.datepicker .datepicker-calender .disabled a{color:#c9c9c9 !important;}
/*# sourceMappingURL=style.css.map */

View File

@@ -1,45 +0,0 @@
<template>
<div class="container template_free">
<article id="content" class="content"></article>
<div tabindex="0" class="layer active">
<div tabindex="0" class="layer_cont error">
<div class="layer_body">
<div class="title_wrap center mar_b50">
<h5 class="h5_title" v-html="message">{{ message }}</h5>
</div>
<div class="btn_wrap mar_t20 center">
<a v-for="(branch, index) in branchList" :key="index" href="javascript:void(0);" class="btn mid" :class="branch.class" @click="branch.callback"><span>{{ branch.text }}</span></a>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
/*
branchList: [
{
text: "저장",
class: "bd_black",
callback: callback
},
.....
]
*/
export default {
name: "buttonBranch",
props: {
message: String,
branchList: {
text: Array,
class: String,
callback: Function
}
},
data() {
return {
}
}
}
</script>

View File

@@ -1,199 +0,0 @@
<template>
<section>
<!-- <div class="emulator_wrap"> -->
<div class="inner_emul">
<strong class="blind">미리보기</strong>
<div class="emulator_area">
<div class="emulator_cont">
<div class="img_area description">
<img :src="bgImageData" v-if="bgImageData && !retrivebgFlag">
<img :src="this.bgImageUrl" v-else-if="retrivebgFlag">
<img src="@/assets/images/common/img_placeholder02.png" v-else>
</div>
<div class="rcs_profile_area">
<img :src="profileImageData" v-if="profileImageData && !retriveProfileFlag">
<img :src="this.profileImageUrl" v-else-if="retriveProfileFlag">
<img src="@/assets/images/common/img_profile_blank.png" v-else>
</div>
<strong class="rcs_brand_name">{{this.brandInfoData.name}}</strong>
<div class="rcs_icon_area">
<span
v-for="(item, index) in visibleMenuItemList"
:key="index"
class="rcs_icon"
:class="`icon_${item.code.toLowerCase()}`"
></span>
</div>
<div class="rcs_desc_area" v-html="this.brandInfoData.descr"></div>
<div class="rcs_detail_area">
<dl>
<dt>전화번호</dt>
<dd>{{this.brandInfoData.tel}}</dd>
<dt>웹사이트</dt>
<dd>{{this.brandInfoData.url}}</dd>
<dt>이메일</dt>
<dd v-if="this.brandInfoData.email === '@'"></dd>
<dd v-else>{{this.brandInfoData.email}}</dd>
<dt>주소</dt>
<dd>{{this.brandInfoData.addrRegnNo}}{{this.brandInfoData.addrMngNo}}{{this.brandInfoData.addrDtl}}</dd>
</dl>
</div>
</div>
</div>
</div>
<!-- </div> -->
</section>
</template>
<script>
// 스크립트를 정의하는 부분
// 개발자 작업 영역
//import { getImageUrl } from '@/service/code'
// [ECMA6] export default 된 부분이 외부에서 import로 사용할 수 있게 된다.
export default {
// .vue 내부에서 사용되는 model
// model 기반으로 vue는 동작된다.
props: {
brandInfoData: {
type: Object
}
},
data() {
return {
bgImageData: '',
profileImageData: '',
profileImageUrl: '',
bgImageUrl: '',
retriveProfileFlag: false,
retrivebgFlag: false
}
},
created() {
// DOM이 만들어 지기 전 실행 되는 곳
// Data를 사전에 준비할 경우 사용된다.
},
mounted() {
// DOM에 해당 .vue가 들어가게 되면 실행 되는 곳
// onload 상태와 동일하다. DOM 이후에 조작할 경우 이곳에서 수행
},
watch: {
'brandInfoData.descr'() {
this.brandInfoData.descr = this.brandInfoData.descr.replace(/\(|\)|on.*\(|eval\(|javascript/gi,'')
.split('\n')
.join('<br />')
},
'brandInfoData.profileImgFile'() {
if (this.brandInfoData.profileImgFile) {
let reader = new FileReader()
let vm = this
let file = this.brandInfoData.profileImgFile
reader.onload = e => {
vm.profileImageData = e.target.result
}
reader.readAsDataURL(file)
} else {
this.profileImageData = ''
}
},
'brandInfoData.bgImgFile'() {
if (this.brandInfoData.bgImgFile) {
let reader = new FileReader()
let vm = this
let file = this.brandInfoData.bgImgFile
reader.onload = e => {
vm.bgImageData = e.target.result
}
reader.readAsDataURL(file)
} else {
this.bgImageData = ''
}
},
'brandInfoData.profileImgFileId'() {
if (
!jglib.isEmpty(this.brandInfoData.profileImgFileId) &&
!jglib.isEmpty(this.brandInfoData.profileImgFileNo)
) {
this.retriveProfileFlag = true
let reqObj = {
fileId: this.brandInfoData.profileImgFileId,
fileNo: this.brandInfoData.profileImgFileNo
}
getImageUrl(reqObj).then(res => {
this.profileImageUrl = res.downloadUrl
})
} else {
this.retriveProfileFlag = false
this.profileImageUrl = ''
}
},
'brandInfoData.bgImgFileId'() {
if (
!jglib.isEmpty(this.brandInfoData.bgImgFileId) &&
!jglib.isEmpty(this.brandInfoData.bgImgFileNo)
) {
this.retrivebgFlag = true
let reqObj = {
fileId: this.brandInfoData.bgImgFileId,
fileNo: this.brandInfoData.bgImgFileNo
}
getImageUrl(reqObj).then(res => {
this.bgImageUrl = res.downloadUrl
})
} else {
this.retrivebgFlag = false
this.bgImageUrl = ''
}
}
},
computed: {
// 값이 자주 변경됨에 따라, 관련되어 데이터 혹은 view가 바뀌어야 할 경우 사용
// method를 바로 연결하면 tic 단위로 계속 실행되기 때문에, 값이 변경할 때만 수행되고,
// cache로 남는 computed를 활용하는 것이 성능에 좋음
visibleMenuItemList() {
if (this.brandInfoData.menuItemList) {
return this.brandInfoData.menuItemList.filter(res => {
return res.visible
})
} else {
return []
}
}
},
methods: {
// .vue 내부에서 사용되는 함수를 정의한다.
// 이벤트에 따라 실행하거나, 내부적으로 사용되는 함수들을 정의한다.
getImageUrl: function(reqData) {
if (!isUseAPI()) {
return new Promise((resolve, reject) => {
let res = {
code: '99999999',
msg: 'not available in mockup'
}
resolve(res)
})
}
return new Promise((resolve, reject) => {
request({
url: `/file/${reqData.fileId}/${reqData.fileNo}`,
method: 'get'
})
.then(res => {
let imgData = {
fileName: res.result.fileName,
downloadUrl: res.result.downloadUrl
}
resolve(imgData)
})
.catch(res => {
reject('error in filedownload')
})
})
}
}
}
</script>

View File

@@ -1,235 +0,0 @@
<template>
<div
:class="kind ? 'block' : 'hidden'"
:style="'z-index: ${zIndex};'"
v-if="visible"
class="layer mid active"
>
<div class="layer_cont">
<div class="layer_head">
<h2>{{title}}</h2>
<slot name="header"></slot>
</div>
<div class="layer_body">
<slot>
<p>{{content}}</p>
</slot>
<!--scroll style="max-height:50vh; position: relative;" :settings="scrollSettings">
</scroll-->
</div>
<div class="layer_foot">
<div class="check_wrap" v-if="checkLabel">
<span class="custom_checkbox">
<input type="checkbox" id="checkbox01" v-model="checked">
<label for="checkbox01">{{checkLabel}}</label>
</span>
</div>
<slot name="footer">
<div class="btn_wrap center" v-if="yesBtn" style="margin-bottom: 20px;">
<a href="javascript:void(0)" @click="handleWrapperClick(kind, 'yes')" class="btn mid point">
<span>{{yesBtn}}</span>
</a>
</div>
<div class="btn_wrap center" v-if="noBtn" style="margin-bottom: 20px;">
<a href="javascript:void(0)" @click="handleWrapperClick(kind)" class="btn mid point">
<span>{{noBtn}}</span>
</a>
</div>
<!-- <a href="javascript:void(0)" @click="handleWrapperClick('close')" class="btn_close">
</a> -->
</slot>
</div>
</div>
</div>
</template>
<script>
import Scroll from 'vue-custom-scrollbar'
export default {
name: 'AddressCustomPopup',
components: {
Scroll
},
props: {
visible: {
type: Boolean,
require: true,
default: false
},
title: {
type: String,
require: true
},
checkLabel: {
type: String,
require: true
},
searchProp: {
type: Boolean,
require: true,
default: false
},
kind: {
type: String,
require: true
},
content: {
type: String,
require: false
},
widths: {
type: Object,
require: false,
default() {
return {
widthLg: 'w-1/2',
widthXl: 'w-2/5'
}
}
},
zIndex: {
type: Number,
require: false,
default() {
return 99999
}
},
marginTop: {
type: String,
require: false,
default() {
return '40' // px 단위
}
},
maxHeight: {
type: String,
require: false,
default() {
return '80' // px 단위
}
},
boxPX: {
type: String,
require: false,
default() {
return 'px-4'
}
},
boxPY: {
type: String,
require: false,
default() {
return 'py-8'
}
},
uiframeBox: {
type: Boolean,
require: false,
default: true
},
yesBtn: {
type: String,
require: false
},
noBtn: {
type: String,
require: false
},
close: Function,
inBody: {
type: Boolean,
require: false,
default: false
},
visibleScroll: {
type: Boolean,
default: true
}
},
data() {
return {
contents: false,
checked: true,
scrollSettings: {
suppressScrollY: false
}
}
},
created() {
this.scrollOps();
console.log("AddressCustomPoipup >", this.visible);
},
mounted() {
if (this.inBody) {
document.body.appendChild(this.$el)
}
},
watch: {
visibleScroll() {
this.scrollOps()
}
},
methods: {
handleWrapperClick(id, callback) {
this.$emit('close', {
id: id,
ok: callback === 'yes'
})
},
scrollOps() {
this.scrollSettings.suppressScrollY = !this.visibleScroll
}
}
}
</script>
<style lang="less" scoped>
.block {
animation: fadein 0.5s;
-webkit-animation: fadein 0.5s;
-ms-animation: fadein 0.5s;
}
.height_60 {
height: 60px;
padding-top: 10px;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
margin: 0 1rem;
width: calc(100% - 2rem);
height: 1px;
background: #eff3f6;
}
}
.content_h {
height: calc(100% - 50px);
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-ms-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
</style>

View File

@@ -1,332 +0,0 @@
<template>
<!-- 커스텀팝업 -->
<address-custom-popup
:visible="visible"
@close="closePopup"
kind="custom"
title="우편번호 찾기"
:noBtn="view.noBtnText"
:yesBtn="view.yesBtnText"
:zIndex="500"
boxPY="pb-5"
:visibleScroll="view.visibleScroll"
>
<template v-slot:header>
</template>
<div class="box_search_wrap" v-if="view.visibleSearch">
<div class="box_search_area">
<div class="filter_bundle_wrap">
<div class="filter_bundle">
<div class="cont_bundle full_width">
<span class="custom_input col_10" style="width: 80%">
<input type="text" placeholder="도로명 또는 건물명(아파트)을 입력해주세요"
ref="addressNm"
v-model="addressNm"
@keypress.enter="search">
</span>
<a href="javascript:void(0);" class="btn mid gray square col_2" @click="search"><span>검색</span></a>
</div>
</div>
</div>
</div>
</div>
<div class="mar_t20" v-if="!view.visibleDetails">
<!-- 검색 건수 -->
<p class="mar_t20" v-if="view.visibleTotalcount">
<span class="result_count left full_width">{{ page.totalcount }}</span>건이 검색되었습니다.
</p>
<!-- 디폴트 문구 -->
<div
class="mar_t20"
v-if="isVisibleDescription"
:class="{'line': view.visibleTotalcount}"
>
<p class="txt_17">도로명 주소와 건물번호를 함께 입력하시면 빠르게 결과를 확인하실 있습니다.</p>
<ul class="mar_t10 txt_16 text_gray2">
<li>도로명 + 건물번호 (: 송파대로 570)</li>
<li>도로명( : 강남대로, 중앙1로, 낙산1길)</li>
<li>건물명, 아파트명 (: 반포자이아파트)</li>
</ul>
</div>
<!-- 리스트 -->
<table class="tbl_row_type type3" v-if="!isVisibleDescription">
<colgroup>
<col style="width:100px;">
<col style="width:350px;">
<col style="width:auto;">
</colgroup>
<thead>
<tr>
<th>우편번호</th>
<th scope="row">도로명</th>
<th>지번</th>
</tr>
</thead>
<tbody>
<tr v-for="(row, index) in list" :key="`list-${index}`">
<td><a href="javascript:void(0);" @click="selectAddr(row)"> {{ row.zipCode }}</a></td>
<td><a href="javascript:void(0);" @click="selectAddr(row)"> {{ row.doroAddressNm }}</a></td>
<td><a href="javascript:void(0);" @click="selectAddr(row)"> {{ row.jibunAddressNm }}</a></td>
</tr>
</tbody>
</table>
<!-- 리스트 페이징 -->
<pagination
v-if="!isVisibleDescription"
:total="page.totalcount"
:current-page.sync="page.currentPage"
:pageSize="page.size"
rangeMax="5"
@change="changePage"
class="type2"
></pagination>
</div>
<!-- 상세주소 입력 -->
<div class="search_result" v-if="view.visibleDetails">
<table class="tbl_row_type">
<caption>
<strong>우편번호 찾기</strong>
<p>우편번호, 도로명/지번 주소</p>
</caption>
<colgroup>
<col style="width:120px;">
<col style="width:auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">우편번호</th>
<td>{{ selectedAddr.zipCode }}</td>
</tr>
<tr>
<th scope="row">
도로명
<br>지번
</th>
<td>
<p>{{ selectedAddr.doroAddressNm }}</p>
<p>{{ selectedAddr.jibunAddressNm }}</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="box_search_area mar_t20" v-if="view.visibleDetails">
<div class="filter_bundle_wrap">
<div class="filter_bundle">
<div class="cont_bundle full_width">
<span class="custom_input full_width" style="width: 100%"><input type="text" placeholder="상세주소를 입력해주세요" v-model="selectedAddr.detail"></span>
</div>
</div>
</div>
<a href="javascript:void(0)" @click="handleWrapperClick" class="btn_close"></a>
</div>
</address-custom-popup>
</template>
<script>
import AddressCustomPopup from './AddressCustomPopup'
import jglib from '@/utils/jglib'
import commApi from '@/common/comm-api'
import Pagination from '@/components/Pagination'
export default {
name: 'AddressPopup',
components: {
AddressCustomPopup,
jglib,
Pagination
},
props: {
visible: {
type: Boolean,
default: true
}
},
data() {
return {
view: {
visibleSearch: true,
visibleTotalcount: false,
visibleDetails: false,
noBtnText: '닫기',
yesBtnText: '',
visibleScroll: false,
pagination: true,
},
addressNm: '',
list: [],
page: {
totalcount: 0,
currentPage: 5,
size: 5
},
selectedAddr: {
doroAddressNm: '',
jibunAddressNm: '',
zipCode: '',
detail: ''
}
}
},
computed: {
isVisibleDescription() {
return parseInt(this.page.totalcount) === 0
}
},
created() {
this.toggleButton(true);
},
mounted() {},
watch: {
'view.visibleDetails'(value) {
if (value) {
this.setVisibleScroll(false)
}
},
isVisibleDescription(value) {
if (!value) {
this.$nextTick(() => {
this.setVisibleScroll(true)
})
}
}
},
methods: {
search() {
// validate
if (jglib.isEmpty(this.addressNm)) {
alert(
'도로명 또는 건물명(아파트)을 입력해주세요'
).then(() => {
this.$refs.addressNm.focus()
})
return false
}
this.view.visibleDetails = false
this.page.currentPage = 1
this.retrieveAddress()
},
retrieveAddress() {
let params = {
page: this.page.currentPage,
psize: this.page.size,
addressNm: this.addressNm
}
commApi
.getAddressList(params)
.then(response => {
var rsp = response.data
if (rsp.success) {
this.list = rsp.data
this.page.totalcount = rsp.search.totalCount
this.view.visibleTotalcount = true
if (this.page.totalcount === 0) {
this.view.visibleDescription = true
} else {
this.view.visibleDescription = false
}
}
})
.catch(err => {
alert(err.desc)
})
},
selectAddr(addr) {
Object.assign(this.selectedAddr, addr)
this.view.visibleSearch = false
this.view.visibleDetails = true
this.toggleButton(false)
},
toggleButton(isClose) {
if (isClose) {
// 닫기 버튼
this.view.noBtnText = '닫기'
this.view.yesBtnText = ''
} else {
// 확인
this.view.noBtnText = ''
this.view.yesBtnText = '확인'
}
},
closePopup(res) {
if(res.id == 'close'){
this.$emit('closeAddressPopup', false);
} else {
if (this.view.visibleDetails && jglib.isEmpty(this.selectedAddr.detail)) {
alert('상세주소를 입력해 주세요.');
} else {
if (res.ok) {
let data = {
zipNo: this.selectedAddr.zipCode,
roadFullAddr: this.selectedAddr.doroAddressNm,
detail: this.selectedAddr.detail
}
this.$emit('getData', data)
} else {
this.$emit('closeAddressPopup', false);
}
}
}
},
changePage(page) {
this.page.currentPage = page
this.retrieveAddress()
},
setVisibleScroll(flag) {
this.view.visibleScroll = flag
},
handleWrapperClick() {
this.$emit('closeAddressPopup', false);
},
}
}
</script>
<style lang="less" scoped>
.layer .search_result .address_list {
border-top: 2px solid #666;
border-bottom: 1px solid #aaa;
letter-spacing: -0.02em;
}
.layer .search_result .address_list li + li {
border-top: 1px solid #ccc;
}
.layer .search_result .address_list li a {
display: flex;
align-items: center;
}
.layer .search_result .address_list li a:hover {
color: #f5f5f5;
}
.layer .search_result .address_list li a > .address {
width: ~'calc(100% - 70px)';
padding: 15px 10px 15px 20px;
box-sizing: border-box;
}
.layer .search_result .address_list li a > .zipcode {
width: 70px;
padding: 20px 20px 20px 0;
box-sizing: border-box;
text-align: right;
}
.layer .search_result .address_list li p {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
line-height: 1.5;
}
.layer .search_result .address_list li p strong.title {
width: 45px;
margin-right: 20px;
}
.layer .search_result .address_list li p span {
width: ~'calc(100% - 65px)';
font-size: 16px;
color: #666;
font-weight: normal;
font-family: 'NotoSansLight';
}
</style>

View File

@@ -1,14 +1,14 @@
<template>
<div>
<div class="dimmed modal26" @click="ModalClose();"></div>
<!--<div>-->
<!-- <div class="dimmed modal26" @click="ModalClose();"></div>-->
<div class="popup-wrap modal26">
<div class="popup modal26">
<div class="pop-head">
<h3 class="pop-tit">관리자명 조회</h3>
</div>
<!--
<div class="pop-cont-detail input_box">-->
<div class="pop-cont-detail">
<div class="pop-cont-detail input_box">
<!-- <div class="pop-cont-detail">-->
<label>ID</label>
<div class="input_search">
<input class="search-box" type="text" placeholder="아이디 입력" v-model.trim="madangId" ref="madangId">
@@ -25,7 +25,7 @@
</div>
</div>
<!--</div>-->
</template>
<script>
@@ -167,11 +167,6 @@ export default {
}
}
// import '../../../assets/css/layout.css?ver=02';
// import '../../../assets/css/contents.css?ver=01';
// import '../../../assets/css/common.css?ver=02';
// import '../../../assets/css/style.css';
</script>

View File

@@ -7,7 +7,7 @@
},
{
"key": "serviceId",
"name": "서비스 ID (관리자 ID)"
"name": "서비스 ID"
},
{
"key": "custNm",

View File

@@ -92,7 +92,7 @@
<div class="button_group">
<button type="button" class="button blue add" @click="memberInsertPopOpen();">사용자 ID 생성</button>
<button type="button" class="button blue add" @click="excelPopOpen();">사용자 ID 대량생성</button>
<button type="button" class="button white del" @click="memberDelete">삭제</button>
<button type="button" class="button white del" @click="memberDelete();">삭제</button>
</div>
</div>
@@ -227,9 +227,10 @@ export default {
},
set(value) {
const selected = [];
if (value) {
this.list.forEach((com) => {
//var chkList = {userId :com.userId};
//console.log(chkList)
selected.push(com.userId);
});
}
@@ -322,18 +323,18 @@ export default {
this.$refs.memoTatalListPop.memoTotalModalOpen(this.row);
},
async memberDelete(){
// console.log(this.selected)
if(window.confirm('삭제 하시겠습니까?')){
this.row.list = this.selected;
var serviceId = this.adminId;
this.row.list = this.selected.map((row)=>({userId:row}));
this.row.adminId = this.adminId;
console.log(this.row);
try {
const response = await custMgtApi.deleteUser(this.row);
let response = await custMgtApi.deleteUser(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
//alert("저장 완료하였습니다.");
alert("저장 완료하였습니다.");
this.memberDetail(serviceId);
}
} catch (error) {
console.log(error);

View File

@@ -9,7 +9,7 @@
<div class="title">기본정보</div>
</div>
<div class="table table_form">
<form autocomplete="off">
<!-- <form autocomplete="off">-->
<table>
<colgroup>
<col style="width:140px">
@@ -59,13 +59,13 @@
</tr>
</tbody>
</table>
</form>
<!-- </form>-->
</div>
<div class="info">
<div class="title">사용정보</div>
</div>
<div class="table table_form">
<form autocomplete="off">
<!-- <form autocomplete="off">-->
<table>
<colgroup>
<col style="width:140px">
@@ -110,7 +110,7 @@
</tbody>
</table>
</form>
<!-- </form>-->
</div>
<div class="info">
<div class="title">사용자 데이터</div>
@@ -151,7 +151,7 @@
<td colspan="2">
<div class="input-double button-double">
<input type="text" disabled v-model="userCnt">
<button type="button" class="button grey">사용자ID 확인</button>
<button type="button" class="button grey" @click="goMemberDetail">사용자ID 확인</button>
</div>
</td>
</tr>
@@ -169,9 +169,9 @@
<!--수정 확인 모달-->
<validation-confirm-pop ref="validationConfirmPop"></validation-confirm-pop>
<!--관리자명 조회 모달-->
<admin-nm-pop ref="adminNmPop"></admin-nm-pop>
</div>
</div>
<admin-nm-pop ref="adminNmPop"></admin-nm-pop>
</div>
</template>
@@ -367,11 +367,9 @@ export default {
searchIDPopOpen: function(){
this.$refs.adminNmPop.ModalOpen();
},
searchIDCalbackFnc: function(props){
console.log(props);
if(props.result){
this.doInsert(props.result);
}
goMemberDetail: function(props){
console.log(this.row);
this.$router.push({ name: 'memberAdminDetail', params: {serviceId : this.row.serviceId} });
},
}
}

View File

@@ -0,0 +1,190 @@
<template>
<!-- <div class="wrap bg-wrap"> -->
<div>
<div class="dimmed" @click="ModalClose();"></div>
<div class="popup-wrap">
<!-- 발신번호 차단 신규 등록 -->
<div class="popup modal52 popup_form">
<div class="pop-head">
<h3 class="pop-tit">발신번호 차단 신규 등록</h3>
</div>
<form autocomplete="off">
<table>
<tbody>
<tr>
<th>발신번호</th>
<td><input type="number" v-model.trim="blckSndrno" ref="blckSndrno"></td>
</tr>
<tr>
<th>발송타입</th>
<td>
<div class="select_box">
<select name="" id="" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
<option v-for="(option, i) in tpType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option>
<!-- <option value="">문자</option>
<option value="">RCS</option> -->
</select>
</div>
</td>
</tr>
<tr>
<th>차단사유</th>
<td>
<div class="select_box">
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
<option v-for="(option, i) in rsnType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option>
</select>
</div>
</td>
</tr>
<tr>
<th>메모</th>
<td class="sender"><textarea class="memo_text" v-model.trim="meno" ref="meno"></textarea></td>
</tr>
</tbody>
</table>
</form>
<div class="pop-btn2">
<button class="btn-pcolor" @click="doInsert">등록</button>
<button class="btn-default" @click="ModalClose();">취소</button>
</div>
</div>
</div>
<!-- 신규등록 - 등록 선택 -->
<div class="popup modal54">
<div class="pop-head">
<div class="pop-tit">신규등록</div>
</div>
<div class="pop-cont">
<div>작성된 내용으로 등록 하시겠습니까?</div>
</div>
<div class="pop-btn2">
<button class="btn-pcolor">확인</button>
<button class="btn-default" onclick="ModalClose();">취소</button>
</div>
</div>
</div>
</template>
<script>
import api from '@/service/api';
import riskMgtApi from '../service/riskMgtApi'
import lodash from "lodash";
export default {
data(){
return{
row: {},
rsnType: [],
tpType: [],
blckSndrno: '',
sndblckTpCd: '',
blckRsnCd: '',
meno: '',
// params: {
// 'blckSndrno' : ''
// ,'sndblckTpCd' : '01'
// ,'blckRsnCd' : '02'
// ,'meno' : ''
// }
}
},
create(){
// this.setCodeDate();
this.formReset();
},
methods :{
//모달 띄우기
ModalOpen(){
var dimmed = document.getElementsByClassName('dimmed');
dimmed[0].style.display = 'block';
var wrap = document.getElementsByClassName('popup-wrap');
wrap[0].style.display = 'block';
var obj = document.getElementsByClassName('modal52');
obj[0].style.display = 'block';
this.setCodeDate();
},
// 모달 끄기
ModalClose(){
//this.formReset();
var dimmed = document.getElementsByClassName('dimmed');
dimmed[0].style.display = 'none';
var wrap = document.getElementsByClassName('popup-wrap');
wrap[0].style.display = 'none';
var popup = document.getElementsByClassName('modal52');
popup[0].style.display = 'none';
},
// 저장 후 부모창 호출
toComplete(){
this.$parent.$refs.table.reloadData();
this.ModalClose();
},
async doInsert(){
if(this.doValidate() && window.confirm('등록 하시겠습니까?')){
try {
const response = await riskMgtApi.insertIntrcp(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
alert('저장 하였습니다.');
this.toComplete();
}
} catch(err) {
console.log(err);
alert("실패 하였습니다.");
}
}
},
setCodeDate(){
// 발송타입
api.commCode({'grpCd' : 'SNDBLCK_TP_CD'}).then(response => {
this.tpType = response.data.data.list;
});
api.commCode({'grpCd' : 'SNDBLCK_RSN_CD'}).then(response => {
this.rsnType = response.data.data.list;
});
},
isNull(obj){
if(lodash.isNil(obj) || lodash.trim(obj) == ''){
return true;
}
return false;
},
doValidate(){
if(this.isNull(this.blckSndrno)){
alert("번호입력.");
this.$refs._blckSndrno.focus();
return false;
}
if(this.isNull(this.meno)){
alert('메모입력');
return false;
}
this.row.blckSndrno=this.blckSndrno;
this.row.sndblckTpCd = this.sndblckTpCd;
this.row.blckRsnCd = this.blckRsnCd;
this.row.meno=this.meno;
return true;
},
formReset(){
var type= this.insertType;
Object.assign(this.$data, this.$options.data());
this.insertType = type;
},
},
}
</script>
<style>
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
.popup-btn-wrap button:hover {background: #000; color: #fff;}
</style>

View File

@@ -0,0 +1,77 @@
<template>
<!-- 메시지 차단 신규 등록 -->
<div class="popup popup_form modal57">
<div class="pop-head">
<h3 class="pop-tit">메시지 차단 신규 등록</h3>
</div>
<form autocomplete="off">
<table>
<tbody>
<tr>
<th>차단문구</th>
<td class="input_add">
<input type="text" value="">
<button class="button white add" onclick=""></button>
</td>
</tr>
<tr>
<td colspan="2" class="registration">
<ul>
<li>
<span>도박<a href="#"><img src="./images/icon-del.png"/></a></span>
</li>
<li>
<span>광고<a href="#"><img src="./images/icon-del.png"/></a></span>
</li>
<li>
<span><a href="#"><img src="./images/icon-del.png"/></a></span>
</li>
</ul>
</td>
</tr>
<tr>
<th>조건</th>
<td>
<input type="radio" name="state" value="AND" id="popup_radio3" checked="">
<label for="popup_radio3">AND</label>
<input type="radio" name="state" value="OR" id="popup_radio4">
<label for="popup_radio4">OR</label>
</td>
</tr>
<tr>
<th>차단사유</th>
<td>
<div>
<select name="" id="">
<option value="일반">일반</option>
<option selected value="대출">대출</option>
<option value="의약품">의약품</option>
<option value="도박출">도박</option>
<option value="스미싱">스미싱</option>
<option value="기타">기타</option>
</select>
</div>
</td>
</tr>
<tr>
<th>메모</th>
<td class="sender"><textarea class="memo_text"></textarea></td>
</tr>
</tbody>
</table>
</form>
<div class="popup-btn2">
<button class="btn-pcolor">저장</button>
<button class="btn-default" onClick="ModalClose();">취소</button>
</div>
</div>
</template>
<script>
export default {
}
</script>

View File

@@ -0,0 +1,193 @@
<template>
<div>
<!-- s: 팝업 -->
<div class="dimmed modal53"></div>
<div class="popup-wrap modal53">
<!-- 발신번호 차단 수정 -->
<div class="popup modal53 popup_form">
<div class="pop-head">
<h3 class="pop-tit">발신번호 차단 수정</h3>
</div>
<form autocomplete="off">
<table>
<tbody>
<tr>
<th>발신번호</th>
<td><input type="text" v-model.trim="blckSndrno"></td>
</tr>
<tr>
<th>발송타입</th>
<td>
<div class="select_box">
<select name="" id="" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
<option v-for="(option, i) in tpType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option>
</select>
</div>
</td>
</tr>
<tr>
<th>차단사유</th>
<td>
<div class="select_box">
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
<option v-for="(option, i) in rsnType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option>
</select>
</div>
</td>
</tr>
<tr>
<th>메모</th>
<td><input type="text" value="고객사요청" v-model.trim="meno" ref="meno"></td>
</tr>
<tr>
<th>차단여부</th>
<td>
<input type="radio" name="state" value="해제" id="popup_radio1" checked="">
<label for="popup_radio1">해제</label>
<input type="radio" name="state" value="차단" id="popup_radio2">
<label for="popup_radio2">차단</label>
</td>
</tr>
</tbody>
</table>
</form>
<div class="pop-btn2 pop-btn3">
<button class="btn-pcolor" @click="IntrcpUpdateModal();">수정</button>
<button class="btn-default" @click="IntrcpDetailModalClose();">취소</button>
<button class="btn-p2color" @click="IntrcpDeleteModal()">삭제</button>
</div>
</div>
</div>
</div>
</template>
<script>
//import api from '@/service/api';
import riskMgtApi from '../service/riskMgtApi';
import api from '@/service/api';
export default {
data(){
return{
row: {},
rsnType: [],
tpType: [],
blckSndrno:'',
sndblckTpCd:'',
blckYn:'',
chgDt:'',
blckRsnCd:'',
regId: '',
meno: '',
}
},
methods :{
// 모달 띄우기
async IntrcpDetailModalOpen(props){
this.setCodeDate();
this.row.blckSndrno = props.blcksndrno;
try {
const response = await riskMgtApi.intrcpDetail(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.blckSndrno = result.data.blcksndrno;
this.sndblckTpCd = result.data.sndblckTpCd;
this.blckYn = result.data.blckYn;
this.blckRsnCd = result.data.blckRsnCd;
this.chgDt = result.data.chgDt;
this.regId = result.data.regId;
this.meno = result.data.meno;
}
} catch(err) {
alert("실패 하였습니다.");
}
var dimmed = document.getElementsByClassName('modal53');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'block';
}
},
setCodeDate(){
// 발송타입
api.commCode({'grpCd' : 'SNDBLCK_TP_CD'}).then(response => {
this.tpType = response.data.data.list;
});
api.commCode({'grpCd' : 'SNDBLCK_RSN_CD'}).then(response => {
this.rsnType = response.data.data.list;
});
},
IntrcpDetailModalClose(){
//this.formReset();
var dimmed = document.getElementsByClassName('modal53');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'none';
}
},
async IntrcpDeleteModal(){
if(window.confirm('삭제 하시겠습니까?')){
try {
let response = await riskMgtApi.deleteIntrcp(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
alert('삭제 하였습니다.');
// grid.reloadData();
// this.$refs.table.reloadData();
this.toComplete();
}
} catch(err) {
alert("실패 하였습니다.");
}
}
},
async IntrcpUpdateModal(){
if(window.confirm('수정 하시겠습니까?')){
try {
let response = await riskMgtApi.updateIntrcp(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
alert('수정 하였습니다.');
this.toComplete();
}
} catch(err) {
alert("실패 하였습니다.");
}
}
},
// 모달 끄기
ModalClose(){
//this.formReset();
var dimmed = document.getElementsByClassName('dimmed');
dimmed[0].style.display = 'none';
var wrap = document.getElementsByClassName('popup-wrap');
wrap[0].style.display = 'none';
var popup = document.getElementsByClassName('modal53');
popup[0].style.display = 'none';
},
toComplete(){
this.$parent.$refs.table.reloadData();
alert('1');
this.ModalClose();
},
}
}
</script>
<style>
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
.popup-btn-wrap button:hover {background: #000; color: #fff;}
</style>

View File

@@ -0,0 +1,27 @@
import httpClient from '@/common/http-client'
// HUBEZ_BO_API_11004 발신번호 차단 수정
const updateIntrcp = (params) => {
return httpClient.post('/api/v1/bo/riskMgt/sendNum/updateIntrcp', params, { withCredentials: false });
}
// HUBEZ_BO_API_11004 발신번호 차단 상세 정보 조회
const intrcpDetail = (params) => {
return httpClient.post('/api/v1/bo/riskMgt/sendNum/intrcpDetail', params, { withCredentials: false });
}
// HUBEZ_BO_API_11003 발신번호 차단 신규 등록
const insertIntrcp = (params) => {
return httpClient.post('/api/v1/bo/riskMgt/sendNum/insertIntrcp', params, { withCredentials: false });
}
const deleteIntrcp = (params) => {
return httpClient.post('/api/v1/bo/riskMgt/sendNum/deleteIntrcp', params, { withCredentials: false });
}
export default {
updateIntrcp,
intrcpDetail,
insertIntrcp,
deleteIntrcp
}

View File

@@ -1,145 +1,167 @@
<template>
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">차단 내역 목록 조회</h3>
<p class="breadcrumb">시스템관리 &gt; 관리자/유치채널 관리</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="대리점">대리점</option>
<option value="운영자">운영자</option>
</select>
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">차단내역</h3>
<p class="breadcrumb">리스크관리 &gt; 차단 내역</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="group">
<div class="input_box cal one">
<label for="right" class="label">발송일</label>
<input class="" type="text" id="" placeholder="2022-10-12">
</div>
<button type="button" class="button grey btn-a">오늘</button>
<div class="select_box id">
<label for="right" class="label">차단사유</label>
<select name="" id="" v-model="grid.params.blckRsnCd">
<option value="" selected>전체</option>
<option value="">일반</option>
<option value="">대출</option>
<option value="">의약품</option>
<option value="">도박</option>
<option value="">스미싱</option>
<option value="">기타</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">차단구분</label>
<select name="" id="" v-model="grid.params.blckTpCd">
<option value="" selected>전체</option>
<option value="">발신번호차단</option>
<option value="">메시지차단</option>
<option value="">080수신번호차단</option>
</select>
</div>
</div>
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="사용">사용</option>
<option value="중지">중지</option>
</select>
<div class="group">
<div class="input_box">
<label for="right" class="label">발신번호</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.sndrno">
</div>
<div class="input_box">
<label for="right" class="label">수신번호</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.rcvno">
</div>
<div class="select_box">
<label for="right" class="label">상세검색</label>
<select name="" id="" v-model="grid.params.searchType1">
<option value="" selected>고객사명</option>
<option value="">사업자번호</option>
<option value="">발송ID</option>
</select>
</div>
<div class="input_box">
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText1">
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력"/>
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
<input type="text" id="name" placeholder="검색어 입력"/>
</div>
<button type="button" class="button grey">조회</button>
</div>
</form>
<div class="info">
<div class="count"> <span>100</span></div>
<div class="button_group">
<button type="button" class="button blue admin">관리자 등록</button>
<button type="button" class="button blue channel">유지채널 등록</button>
<button type="button" class="button white delete">삭제</button>
</form>
<div class="info">
<div class="count"> <span> {{ totalItems }} </span>
<div class="select_box NumberSe">
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="grid.url"
:pagePerRows="grid.pagePerRows"
:initialRequest="grid.pagination"
:pagination="grid.pagination"
:isCheckbox="grid.isCheckbox"
:columns="grid.columns"
:noDataStr="grid.noDataStr"
:addCls="grid.addCls"
:header="grid.headder">
</custom-grid>
</div>
<!-- <div class="table">
<table>
<colgroup>
<col width="5%"/>
<col width="15%"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<col width="5%"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
<th>NO</th>
<th>권한</th>
<th>이름(대리점명)</th>
<th>ID</th>
<th>상태</th>
<th>등록일</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
<td>10</td>
<td>대리점</td>
<td>유플러스</td>
<td><a href="javascript:void(0)">uplus1</a></td>
<td>사용</td>
<td>2022-03-10</td>
</tr>
</tbody>
</table>
</div> -->
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="testList.url"
:perPage="testList.perPage"
:initialRequest="testList.initialRequest"
:pagination="testList.pagination"
:isCheckbox="testList.isCheckbox"
:columns="testList.columns"
:noDataStr="testList.noDataStr"
:addCls="testList.addCls"
:header="testList.header"
></custom-grid>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import customGrid from '@/components/CustomGrid';
//import api from '../service/api';
class customBRegNo {
constructor(props) {
this.props = props;
const el = document.createElement('td');
var bizrno = String(props.colValue);
el.innerText= bizrno;
if(bizrno.length == 10){
el.innerText= bizrno.substring(0,3)+'-'+bizrno.substring(3,5)+'-'+bizrno.substring(5,10)
}
this.el = el;
}
getElement() {
return this.el;
}
addEvent(selEl) {
}
}
export default {
name: 'intrcpList',
data() {
return {
testList: {
url: '/api/v1/bo/sysMgt/adminList',
totalItems: 0,
grid: {
url: '/api/v1/bo/riskMgt/web/intrcpList',
perPage: 20,
pagination: true,
isCheckbox: true,
isCheckbox: false,
initialRequest: false,
addCls: 'box_OFvis',
header: [
[
{ header: 'NO', childNames: [] },
{ header: '권한', childNames: [] },
{ header: '이름(대리점명)', childNames: [] },
{ header: 'ID', childNames: [] },
{ header: '상태', childNames: [] },
{ header: '등록일', childNames: [] }
{ header: '차단구분', childNames: [] },
{ header: '발송ID', childNames: [] },
{ header: '발신번호', childNames: [] },
{ header: '고객사명', childNames: [] },
{ header: '사업자번호', childNames: [] },
{ header: '수신번호', childNames: [] },
{ header: '차단사유', childNames: [] },
{ header: '발송일자', childNames: [] }
]
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'auth', header: '권한', align: 'left', width: 160 },
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
{ name: 'blckTpCd', header: '차단구분', align: 'center', width: 160 },
{ name: 'userId', header: '발송ID', align: 'center', width: 100, renderer: {type: customBRegNo}},
{ name: 'sndrno', header: '발신번호', align: 'center', width: 130},
{ name: 'custNm', header: '고객사명', align: 'center', width: 130},
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 90, renderer: {type: customBRegNo} },
{ name: 'rcvno', header: '수신번호', align: 'center', width: 90 },
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 90 },
{ name: 'blckDt', header: '발송일자', align: 'center', width: 90 },
],
noDataStr: '검색 결과가 없습니다.',
// params: {
// apprResult: '',
// searchType: '',
// searchText: '',
// startDate: '',
// endDate: ''
// },
params: {
blckDt: '',
blckRsnCd: '',
blckTpCd: '',
sndrno: '',
rcvno: '',
searchType1: '',
searchText1: ''
},
excelHeader: []
}
};
@@ -148,18 +170,76 @@ export default {
customGrid: customGrid
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
page: 1,
perPage: 20,
params: {
blckDt: '',
blckRsnCd: '',
blckTpCd: '',
sndrno: '',
rcvno: '',
searchType1: '',
searchText1: ''
}
});
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {
let page = 1;
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
let isKeep = false;
isKeep = true;
if(getCondition) {
this.grid.pagePerRows = getCondition.perPage;
this.grid.params = getCondition.params;
page = getCondition.page;
isKeep = true;
}
this.search(isKeep);
},
methods: {
search: function(isKeep) {
console.log(this.testList.params);
this.$refs.table.search(this.testList.params, isKeep);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
sendStoreData: function() {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: {
blckDt: '',
blckRsnCd: '',
blckTpCd: '',
sndrno: '',
rcvno: '',
searchType1: '',
searchText1: ''
}
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
//console.log("getCondition : "+ getCondition.perPage);
}
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
}
};
</script>

View File

@@ -3,163 +3,249 @@
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">발신번호 차단 목록 조회</h3>
<p class="breadcrumb">시스템관리 &gt; 관리자/유치채널 관리</p>
<h3 class="title">발신번호 차단</h3>
<p class="breadcrumb">리스크관리 &gt; 발신번호 차단</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="대리점">대리점</option>
<option value="운영자">운영자</option>
</select>
<div class="group">
<div class="input_box">
<label for="regId" class="label">등록자</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.regId" v-on:keydown.enter.prevent="search"/>
</div>
<div class="select_box">
<label for="blckRsnCd" class="label">차단사유</label>
<select name="" id="blckRsnCd" v-model="grid.params.blckRsnCd" @keyup="search">
<option value="" selected>전체</option>
<option value="">일반</option>
<option value="">대출</option>
<option value="">의약품</option>
<option value="">도박</option>
<option value="">스미싱</option>
<option value="">기타</option>
</select>
</div>
</div>
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="사용">사용</option>
<option value="중지">중지</option>
</select>
<div class="group">
<div class="select_box">
<label for="right" class="label">차단여부</label>
<select name="" id="" v-model="grid.params.blckYn">
<option value="" selected>전체</option>
<option value="">차단</option>
<option value="">해제</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">발송타입</label>
<select name="" id="" v-model="grid.params.sndblckTpCd">
<option value="" selected>전체</option>
<option value="">공용</option>
<option value="">문자</option>
<option value="">RCS</option>
</select>
</div>
<div class="input_box">
<label for="right" class="label">발신번호</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.blcksndrno">
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력"/>
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
<input type="text" id="name" placeholder="검색어 입력"/>
</div>
<button type="button" class="button grey">조회</button>
</div>
</form>
<div class="info">
<div class="count"> <span>100</span></div>
<div class="count"> <span>{{ totalItems }}</span>
<div class="select_box NumberSe">
<select name="" id="" v-model="perPageCnt" @change="changePerPage()">
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{ option.text }}</option>
</select>
</div>
</div>
<div class="button_group">
<button type="button" class="button blue admin">관리자 등록</button>
<button type="button" class="button blue channel">유지채널 등록</button>
<button type="button" class="button white delete">삭제</button>
<button type="button" class="button blue add" @click="ModalOpen()">신규등록</button>
</div>
</div>
<!-- <div class="table">
<table>
<colgroup>
<col width="5%"/>
<col width="15%"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<col width="5%"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
<th>NO</th>
<th>권한</th>
<th>이름(대리점명)</th>
<th>ID</th>
<th>상태</th>
<th>등록일</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
<td>10</td>
<td>대리점</td>
<td>유플러스</td>
<td><a href="javascript:void(0)">uplus1</a></td>
<td>사용</td>
<td>2022-03-10</td>
</tr>
</tbody>
</table>
</div> -->
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="testList.url"
:perPage="testList.perPage"
:initialRequest="testList.initialRequest"
:pagination="testList.pagination"
:isCheckbox="testList.isCheckbox"
:columns="testList.columns"
:noDataStr="testList.noDataStr"
:addCls="testList.addCls"
:header="testList.header"
:url="grid.url"
:pagePerRows="grid.pagePerRows"
:initialRequest="grid.initialRequest"
:pagination="grid.pagination"
:isCheckbox="grid.isCheckbox"
:columns="grid.columns"
:noDataStr="grid.noDataStr"
:addCls="grid.addCls"
:header="grid.headder"
></custom-grid>
</div>
<insert-intrcp-pop ref="insertIntrcpPop"> </insert-intrcp-pop>
<intrcp-detail-popup ref="intrcpDetailPopup"></intrcp-detail-popup>
</div>
</div>
</template>
<script>
import customGrid from '@/components/CustomGrid';
import api from '@/service/api.js';
import intrcpDetailPopup from '../components/IntrcpDetailPopup';
import insertIntrcpPop from '../components/InsertIntrcpPop';
//import api from '../service/api';
class CustomATagRenderer {
constructor(props) {
this.props = props;
const el = document.createElement('a');
el.href = 'javascript:void(0);';
el.className = 'btn_text';
el.innerText= String(props.colValue)
this.el = el;
}
getElement() {
return this.el;
}
addEvent(selEl) {
selEl.addEventListener("click", () => {
const { callback } = this.props["cgrido" + this.props.colName].options;
callback(this.props);
});
}
}
export default {
name: 'intrcpList',
data() {
return {
testList: {
url: '/api/v1/bo/sysMgt/adminList',
totalItems: 0,
perPageCnt: 50,
options: [
{ text: '20', value: 20},
{ text: '50', value: 50},
{ text: '100', value: 100}
],
grid: {
url: '/api/v1/bo/riskMgt/sendNum/intrcpList',
perPage: 20,
pagination: true,
isCheckbox: true,
isCheckbox: false,
initialRequest: false,
addCls: 'box_OFvis',
header: [
[
{ header: 'NO', childNames: [] },
{ header: '권한', childNames: [] },
{ header: '이름(대리점명)', childNames: [] },
{ header: 'ID', childNames: [] },
{ header: '상태', childNames: [] },
{ header: '등록일', childNames: [] }
{ header: '발신번호', childNames: [] },
{ header: '차단여부', childNames: [] },
{ header: '발송타입', childNames: [] },
{ header: '최근수정일', childNames: [] },
{ header: '차단사유', childNames: [] },
{ header: '등록자', childNames: [] }
]
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'auth', header: '권한', align: 'left', width: 160 },
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
{ name: 'no', header: 'NO', align: 'center', width: 50 },
{ name: 'blcksndrno', header: '발신번호', align: 'center', width: 160,
renderer: { type: CustomATagRenderer, options: { callback: this.inDetailPop} } },
{ name: 'blckYn', header: '차단여부', align: 'center', width: 100},
{ name: 'sndblckTpCd', header: '발송타입', align: 'center', width: 100},
{ name: 'lastChgDt', header: '최근수정일', align: 'center', width: 100},
{ name: 'blckRsnCd', header: '차단사유', width: 100, cls: 'td_line' },
{ name: 'regId', header: '등록자', width: 150 }
],
noDataStr: '검색 결과가 없습니다.',
// params: {
// apprResult: '',
// searchType: '',
// searchText: '',
// startDate: '',
// endDate: ''
// },
params: {
regId: '',
blckRsnCd: '',
blckYn: '',
sndblckTpCd: '',
blcksndrno: ''
},
excelHeader: []
}
};
},
components: {
customGrid: customGrid
customGrid: customGrid,
intrcpDetailPopup,
insertIntrcpPop
},
destroyed() {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setCodeData();
// this.formReset();
},
mounted() {
let page = 1;
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
let isKeep = false;
isKeep = true;
if(getCondition) {
this.grid.pagePerRows = getCondition.perPage;
this.grid.params = getCondition.params;
page = getCondition.page;
isKeep = true;
}
this.search(isKeep);
},
methods: {
search: function(isKeep) {
console.log(this.testList.params);
this.$refs.table.search(this.testList.params, isKeep);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
sendStoreData: function() {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log("getCondition : "+ getCondition.perPage);
},
setCodeData() {
// 상태 옵션 셋팅.
api.commCode({'grpCd' : 'SVCUSER_STTUS_CD'}).then(response => {
this.statType = response.data.data.list;
});
//
api.commCode({'grpCd' : 'SVCUSER_TP_CD'}).then(response => {
this.userType = response.data.data.list;
});
},
ModalOpen: function(){
this.$refs.insertIntrcpPop.ModalOpen();
},
inDetailPop(props) {
this.$refs.intrcpDetailPopup.IntrcpDetailModalOpen(props);
},
// formReset(){
// var type= this.insertType;
// Object.assign(this.$data, this.$options.data());
// this.insertType = type;
// },
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
}
};
</script>

View File

@@ -3,94 +3,61 @@
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">메시지 차단 목록 조회</h3>
<p class="breadcrumb">시스템관리 &gt; 관리자/유치채널 관리</p>
<h3 class="title">메시지 차단</h3>
<p class="breadcrumb">리스크관리 &gt; 메시지 차단</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="대리점">대리점</option>
<option value="운영자">운영자</option>
</select>
<div class="input_box">
<label for="regId" class="label">등록자</label>
<input class="search-box" type="text" id="regId" placeholder="검색어 입력" v-model="grid.params.regId" v-on:keydown.enter.prevent="search"/>
</div>
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="사용">사용</option>
<option value="중지">중지</option>
</select>
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력"/>
<label for="blckRsnCd" class="label">차단사유</label>
<select name="" id="blckRsnCd" v-model="grid.params.blckRsnCd" @keyup="search">
<option value="" selected>전체</option>
<option value="">일반</option>
<option value="">대출</option>
<option value="">의약품</option>
<option value="">도박</option>
<option value="">스미싱</option>
<option value="">기타</option>
</select>
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
<input type="text" id="name" placeholder="검색어 입력"/>
<label for="word" class="label">차단메시지</label>
<input class="search-box" type="text" id="word" placeholder="검색어 입력" v-model="grid.params.word" v-on:keydown.enter.prevent="search" />
</div>
<button type="button" class="button grey">조회</button>
<button type="button" class="button grey" @click="search">조회</button>
</div>
</form>
<div class="info">
<div class="count"> <span>100</span></div>
<div class="count"> <span> {{ totalItems}} </span>
<div class="select_box NumberSe">
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
</select>
</div>
</div>
<div class="button_group">
<button type="button" class="button blue admin">관리자 등록</button>
<button type="button" class="button blue channel">유지채널 등록</button>
<button type="button" class="button white delete">삭제</button>
<button type="button" class="button blue add">신규등록</button>
</div>
</div>
<!-- <div class="table">
<table>
<colgroup>
<col width="5%"/>
<col width="15%"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<col width="5%"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
<th>NO</th>
<th>권한</th>
<th>이름(대리점명)</th>
<th>ID</th>
<th>상태</th>
<th>등록일</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
<td>10</td>
<td>대리점</td>
<td>유플러스</td>
<td><a href="javascript:void(0)">uplus1</a></td>
<td>사용</td>
<td>2022-03-10</td>
</tr>
</tbody>
</table>
</div> -->
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="testList.url"
:perPage="testList.perPage"
:initialRequest="testList.initialRequest"
:pagination="testList.pagination"
:isCheckbox="testList.isCheckbox"
:columns="testList.columns"
:noDataStr="testList.noDataStr"
:addCls="testList.addCls"
:header="testList.header"
:url="grid.url"
:perPage="grid.perPage"
:initialRequest="grid.initialRequest"
:pagination="grid.pagination"
:isCheckbox="grid.isCheckbox"
:columns="grid.columns"
:noDataStr="grid.noDataStr"
:addCls="grid.addCls"
:header="grid.header"
></custom-grid>
</div>
</div>
@@ -104,8 +71,11 @@ export default {
name: 'intrcpList',
data() {
return {
testList: {
url: '/api/v1/bo/sysMgt/adminList',
totalItems: 0,
// 테이블 리스트 데이터
perPageCnt: 20,
grid: {
url: '/api/v1/bo/riskMgt/msg/intrcpList',
perPage: 20,
pagination: true,
isCheckbox: true,
@@ -116,30 +86,28 @@ export default {
header: [
[
{ header: 'NO', childNames: [] },
{ header: '권한', childNames: [] },
{ header: '이름(대리점명)', childNames: [] },
{ header: 'ID', childNames: [] },
{ header: '상태', childNames: [] },
{ header: '등록', childNames: [] }
{ header: '차단메시지', childNames: [] },
{ header: '차단여부', childNames: [] },
{ header: '마지막 수정일', childNames: [] },
{ header: '차단사유', childNames: [] },
{ header: '등록', childNames: [] }
]
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'auth', header: '권한', align: 'left', width: 160 },
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
{ name: 'regDt', header: '등록', width: 90, cls: 'td_line' }
{ name: 'word', header: '차단메시지', align: 'center', width: 160 },
{ name: 'blckYn', header: '차단여부', align: 'center', width: 130},
{ name: 'lastChgDt', header: '마지막 수정일', align: 'center', width: 130},
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 130},
{ name: 'regId', header: '등록', width: 90, cls: 'td_line' }
],
noDataStr: '검색 결과가 없습니다.',
// params: {
// apprResult: '',
// searchType: '',
// searchText: '',
// startDate: '',
// endDate: ''
// },
params: {
regId: '',
blckRsnCd: '',
word: ''
},
excelHeader: []
}
};
@@ -148,18 +116,68 @@ export default {
customGrid: customGrid
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
page: 1,
perPage: 20,
params: {
regId: '',
blckRsnCd: '',
word: ''
}
});
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {
let page = 1;
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
let isKeep = false;
isKeep = true;
if(getCondition) {
this.grid.pagePerRows = getCondition.perPage;
this.grid.params = getCondition.params;
page = getCondition.page;
isKeep = true;
}
this.search(isKeep);
},
methods: {
search: function(isKeep) {
console.log(this.testList.params);
this.$refs.table.search(this.testList.params, isKeep);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
sendStoreData: function() {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: {
regId: '',
blckRsnCd: '',
word: ''
}
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
//console.log("getCondition : "+ getCondition.perPage);
}
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
}
};
</script>

View File

@@ -1,145 +1,121 @@
<template>
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">080수신번호 차단 목록 조회</h3>
<p class="breadcrumb">시스템관리 &gt; 관리자/유치채널 관리</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="대리점">대리점</option>
<option value="운영자">운영자</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="사용">사용</option>
<option value="중지">중지</option>
</select>
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력"/>
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">080 수신번호 차단</h3>
<p class="breadcrumb">리스크관리 &gt; 080 수신번호 차단</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="input_box">
<label for="search" class="label">고객사</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.custNm"/>
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
<input type="text" id="name" placeholder="검색어 입력"/>
<label for="search" class="label">인증코드</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.authcd080"/>
</div>
<button type="button" class="button grey">조회</button>
<div class="input_box">
<label for="right" class="label">수신번호</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.rcvblckno"/>
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
</form>
<div class="info">
<div class="count"> <span>100</span></div>
<div class="button_group">
<button type="button" class="button blue admin">관리자 등록</button>
<button type="button" class="button blue channel">유지채널 등록</button>
<button type="button" class="button white delete">삭제</button>
</form>
<div class="info">
<div class="count"> <span> {{ totalItems }} </span>
<div class="select_box NumberSe">
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="grid.url"
:pagePerRows="grid.pagePerRows"
:initialRequest="grid.pagination"
:pagination="grid.pagination"
:isCheckbox="grid.isCheckbox"
:columns="grid.columns"
:noDataStr="grid.noDataStr"
:addCls="grid.addCls"
:header="grid.headder">
</custom-grid>
</div>
<!-- <div class="table">
<table>
<colgroup>
<col width="5%"/>
<col width="15%"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<col width="5%"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
<th>NO</th>
<th>권한</th>
<th>이름(대리점명)</th>
<th>ID</th>
<th>상태</th>
<th>등록일</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
<td>10</td>
<td>대리점</td>
<td>유플러스</td>
<td><a href="javascript:void(0)">uplus1</a></td>
<td>사용</td>
<td>2022-03-10</td>
</tr>
</tbody>
</table>
</div> -->
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="testList.url"
:perPage="testList.perPage"
:initialRequest="testList.initialRequest"
:pagination="testList.pagination"
:isCheckbox="testList.isCheckbox"
:columns="testList.columns"
:noDataStr="testList.noDataStr"
:addCls="testList.addCls"
:header="testList.header"
></custom-grid>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import customGrid from '@/components/CustomGrid';
//import api from '../service/api';
class customBRegNo {
constructor(props) {
this.props = props;
const el = document.createElement('td');
var bizrno = String(props.colValue);
el.innerText= bizrno;
if(bizrno.length == 10){
el.innerText= bizrno.substring(0,3)+'-'+bizrno.substring(3,5)+'-'+bizrno.substring(5,10)
}
this.el = el;
}
getElement() {
return this.el;
}
addEvent(selEl) {
}
}
export default {
name: 'intrcpList',
data() {
return {
testList: {
url: '/api/v1/bo/sysMgt/adminList',
totalItems: 0,
grid: {
url: '/api/v1/bo/riskMgt/zezNum/intrcpList',
perPage: 20,
pagination: true,
isCheckbox: true,
isCheckbox: false,
initialRequest: false,
addCls: 'box_OFvis',
header: [
[
{ header: 'NO', childNames: [] },
{ header: '권한', childNames: [] },
{ header: '이름(대리점명)', childNames: [] },
{ header: 'ID', childNames: [] },
{ header: '상태', childNames: [] },
{ header: '등록일', childNames: [] }
{ header: '고객사', childNames: [] },
{ header: '사업자번호', childNames: [] },
{ header: '인증코드', childNames: [] },
{ header: '수신번호', childNames: [] },
{ header: '등록일', childNames: [] },
{ header: '등록구분', childNames: [] }
]
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'auth', header: '권한', align: 'left', width: 160 },
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
{ name: 'custNm', header: '고객사', align: 'center', width: 160 },
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 100, renderer: {type: customBRegNo}},
{ name: 'authcd080', header: '인증코드', align: 'center', width: 130},
{ name: 'rcvblckno', header: '수신번호', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', align: 'center', width: 130},
{ name: 'regTpCd', header: '등록구분', width: 90, cls: 'td_line' }
],
noDataStr: '검색 결과가 없습니다.',
// params: {
// apprResult: '',
// searchType: '',
// searchText: '',
// startDate: '',
// endDate: ''
// },
params: {
regTpCd: '',
authcd080: '',
rcvblckno: ''
},
excelHeader: []
}
};
@@ -148,18 +124,68 @@ export default {
customGrid: customGrid
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
page: 1,
perPage: 20,
params: {
regTpCd: '',
authcd080: '',
rcvblckno: ''
}
});
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {
let page = 1;
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
let isKeep = false;
isKeep = true;
if(getCondition) {
this.grid.pagePerRows = getCondition.perPage;
this.grid.params = getCondition.params;
page = getCondition.page;
isKeep = true;
}
this.search(isKeep);
},
methods: {
search: function(isKeep) {
console.log(this.testList.params);
this.$refs.table.search(this.testList.params, isKeep);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
sendStoreData: function() {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: {
regTpCd: '',
authcd080: '',
rcvblckno: ''
}
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
//console.log("getCondition : "+ getCondition.perPage);
}
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
}
};
</script>

View File

@@ -4,162 +4,226 @@
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">문자 발신 번호 목록 조회</h3>
<p class="breadcrumb">시스템관리 &gt; 관리자/유치채널 관리</p>
<p class="breadcrumb">발신번호관리 &gt; 문자 발신 번호 목록 조회</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="대리점">대리점</option>
<option value="운영자">운영자</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="사용">사용</option>
<option value="중지">중지</option>
</select>
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력"/>
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
<input type="text" id="name" placeholder="검색어 입력"/>
</div>
<button type="button" class="button grey">조회</button>
<div class="group">
<div class="select_box">
<label for="right" class="label">승인상태</label>
<select name="" id="sttusCd" v-model="grid.params.searchType1" @keyup.enter="search">
<option value="">전체</option>
<option value="01">승인대기</option>
<option value="02">승인완료</option>
<option value="03">반려</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">명의자 구분</label>
<select name="" id="nmineeDivCd" v-model="grid.params.searchType2" @keyup.enter="search">
<option value="">전체</option>
<option value="01">사업자</option>
<option value="02">타사업자</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">인입채널</label>
<select name="" id="inchDivCd" v-model="grid.params.searchType3" @keyup.enter="search">
<option value="">전체</option>
<option value="01">홈페이지</option>
<option value="02">어드민</option>
</select>
</div>
<div class="select_box id">
<label for="right" class="label">상세검색</label>
<select name="" id="category" v-model="grid.params.searchType4" @keyup.enter="search">
<option value="bregNo">사업자번호</option>
<option selected value="regNo">발신번호</option>
<option value="custNm">고객사명</option>
</select>
</div>
<div class="input_box">
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search"/>
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
</div>
</form>
<div class="info">
<div class="count"> <span>100</span></div>
<div class="button_group">
<button type="button" class="button blue admin">관리자 등록</button>
<button type="button" class="button blue channel">유지채널 등록</button>
<button type="button" class="button white delete">삭제</button>
<div class="count"> <span>{{ totalItems }}</span>
<div class="select_box NumberSe">
<select name="" id="perPage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20" selected>20</option>
<option value="50" >50</option>
<option value="100">100</option>
</select>
</div>
</div>
<div class="button_group">
<button type="button" class="button blue add" @click="numberRegPopOpen();">등록</button>
<button type="button" class="button white del">삭제</button>
</div>
</div>
<!-- <div class="table">
<table>
<colgroup>
<col width="5%"/>
<col width="15%"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<col width="5%"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
<th>NO</th>
<th>권한</th>
<th>이름(대리점명)</th>
<th>ID</th>
<th>상태</th>
<th>등록일</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
<td>10</td>
<td>대리점</td>
<td>유플러스</td>
<td><a href="javascript:void(0)">uplus1</a></td>
<td>사용</td>
<td>2022-03-10</td>
</tr>
</tbody>
</table>
</div> -->
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="testList.url"
:perPage="testList.perPage"
:initialRequest="testList.initialRequest"
:pagination="testList.pagination"
:isCheckbox="testList.isCheckbox"
:columns="testList.columns"
:noDataStr="testList.noDataStr"
:addCls="testList.addCls"
:header="testList.header"
></custom-grid>
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="grid.url"
:pagePerRows="grid.pagePerRows"
:initialRequest="grid.initialRequest"
:pagination="grid.pagination"
:isCheckbox="grid.isCheckbox"
:columns="grid.columns"
:noDataStr="grid.noDataStr"
:addCls="grid.addCls"
:header="grid.headder"
></custom-grid>
</div>
</div>
<!-- <number-reg-pop ref="numberRegPop"> </number-reg-pop> -->
</div>
</div>
</template>
<script>
import customGrid from '@/components/CustomGrid';
//import api from '../service/api';
// import NumberRegPop from '../components/NumberRegPop';
export default {
name: 'profileList',
name: 'numberList',
data() {
return {
testList: {
url: '/api/v1/bo/sysMgt/adminList',
row: {},
authType: [],
statType: [],
cate2Code: "",
totalItems: 0,
// 테이블 리스트 데이터
perPageCnt: 20,
grid: {
url: '/api/v1/bo/sendNumMgt/numberList',
perPage: 20,
pagination: true,
isCheckbox: true,
initialRequest: false,
addCls: 'box_OFvis',
header: [
[
{ header: 'NO', childNames: [] },
{ header: '권한', childNames: [] },
{ header: '이름(대리점명)', childNames: [] },
{ header: 'ID', childNames: [] },
{ header: '상태', childNames: [] },
{ header: '등록일', childNames: [] }
{ header: '고객사명', childNames: [] },
{ header: '관리자ID', childNames: [] },
{ header: '등록자ID', childNames: [] },
{ header: '사업자번호', childNames: [] },
{ header: '명의자 구분', childNames: [] },
{ header: '인입채널', childNames: [] },
{ header: '발신번호', childNames: [] },
{ header: '승인상태', childNames: [] },
{ header: '등록일자', childNames: [] }
]
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'auth', header: '권한', align: 'left', width: 160 },
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
{ name: 'no', header: 'NO', align: 'center', width: 50 },
{ name: 'custNm', header: '고객사명', align: 'left', width: 50 },
{ name: 'adminId', header: '관리자ID', align: 'left', width: 100 },
{ name: 'register', header: '등록자ID', align: 'left', width: 100 },
{ name: 'bRegNo', header: '사업자번호', align: 'center', width: 100},
{ name: 'nmineeDivCd', header: '명의자 구분', align: 'center', width: 100},
{ name: 'inchDivCd', header: '인입채널', align: 'center', width: 100},
{ name: 'regNo', header: '발신번호', align: 'center', width: 100},
{ name: 'sttusCd', header: '승인상태', align: 'center', width: 100},
{ name: 'regDt', header: '등록일자', width: 100, cls: 'td_line' }
],
noDataStr: '검색 결과가 없습니다.',
// params: {
// apprResult: '',
// searchType: '',
// searchText: '',
// startDate: '',
// endDate: ''
// },
params: {
searchType1: '',
searchType2: '',
searchType3: '',
searchType4: '',
searchText1: '',
pagePerRows: '',
page: ''
},
excelHeader: []
}
};
},
components: {
customGrid: customGrid
customGrid: customGrid,
// NumberRegPop
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
page: 1,
perPage: 20,
params: {
searchType1: '',
searchType2: '',
searchType3: '',
searchType4: '',
searchText1: '',
pagePerRows: '',
page: ''}
});
},
mounted() {
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
let isKeep = false;
isKeep = true;
if (getCondition) {
this.grid.pagePerRows = getCondition.perPage;
this.grid.params = getCondition.params;
page = getCondition.page;
isKeep = true;
}
this.search(isKeep);
},
methods: {
search: function(isKeep) {
console.log(this.testList.params);
this.$refs.table.search(this.testList.params, isKeep);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
sendStoreData: function() {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: {
searchType1: '',
searchType2: '',
searchType3: '',
searchType4: '',
searchText1: '',
pagePerRows: '',
page: ''
}
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
numberRegPopOpen: function(){
this.$refs.numberRegPop.ModalOpen();
},
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
}
};
</script>

View File

@@ -1,165 +1,208 @@
<template>
<div class="wrap main_wrap">
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">발신 프로필 목록 조회</h3>
<p class="breadcrumb">시스템관리 &gt; 관리자/유치채널 관리</p>
<h3 class="title">발신프로필관리</h3>
<p class="breadcrumb">발신번호관리 &gt; 발신프로필관리</p>
</div>
<form autocomplete="off" class="search_form">
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right">
<label for="stat" class="label">상태</label>
<select name="" id="stat" v-model="grid.params.searchType1" @keyup="search">
<option value="전체">전체</option>
<option value="대리점">대리점</option>
<option value="운영자">운영자</option>
<option value="A">사용</option>
<option value="N">미사용</option>
<option value="H">휴면</option>
<option value="D">삭제</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label"></label>
<select name="" id="right">
<option value="전체">전체</option>
<option value="사용"></option>
<option value="중지">중지</option>
<div class="select_box id">
<label for="searchType" class="label">세검색</label>
<select name="" id="searchType" v-model="grid.params.searchType2" @keyup="search">
<option value="custNm">고객사명</option>
<option value="bregNo">업자번호</option>
<option value="sendProfile">발신프로필</option>
</select>
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력"/>
<label for="search" class="label">검색어</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search" />
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
<input type="text" id="name" placeholder="검색어 입력"/>
</div>
<button type="button" class="button grey">조회</button>
<button type="button" class="button grey" @click="search">조회</button>
</div>
</form>
<div class="info">
<div class="count"> <span>100</span></div>
<div class="button_group">
<button type="button" class="button blue admin">관리자 등록</button>
<button type="button" class="button blue channel">유지채널 등록</button>
<button type="button" class="button white delete">삭제</button>
<div class="count"> <span> {{ totalItems}} </span>
<div class="select_box NumberSe">
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
</select>
</div>
</div>
</div>
<!-- <div class="table">
<table>
<colgroup>
<col width="5%"/>
<col width="15%"/>
<col width="15%"/>
<col width="20%"/>
<col width="20%"/>
<col width="5%"/>
<col width="20%"/>
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
<th>NO</th>
<th>권한</th>
<th>이름(대리점명)</th>
<th>ID</th>
<th>상태</th>
<th>등록일</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
<td>10</td>
<td>대리점</td>
<td>유플러스</td>
<td><a href="javascript:void(0)">uplus1</a></td>
<td>사용</td>
<td>2022-03-10</td>
</tr>
</tbody>
</table>
</div> -->
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="testList.url"
:perPage="testList.perPage"
:initialRequest="testList.initialRequest"
:pagination="testList.pagination"
:isCheckbox="testList.isCheckbox"
:columns="testList.columns"
:noDataStr="testList.noDataStr"
:addCls="testList.addCls"
:header="testList.header"
></custom-grid>
</div>
</div>
</div>
<div class="table">
<custom-grid
ref="table"
:totalItems="'totalItems'"
:url="grid.url"
:pagePerRows="grid.pagePerRows"
:initialRequest="grid.pagination"
:pagination="grid.pagination"
:isCheckbox="grid.isCheckbox"
:columns="grid.columns"
:noDataStr="grid.noDataStr"
:addCls="grid.addCls"
:header="grid.headder">
</custom-grid>
</div>
</div>
</div>
</div>
</template>
<script>
import customGrid from '@/components/CustomGrid';
//import api from '../service/api';
class customBRegNo {
constructor(props) {
this.props = props;
const el = document.createElement('td');
var bregNo = String(props.colValue);
el.innerText= bregNo;
if(bregNo.length == 10){
el.innerText= bregNo.substring(0,3)+'-'+bregNo.substring(3,5)+'-'+bregNo.substring(5,10)
}
this.el = el;
}
getElement() {
return this.el;
}
addEvent(selEl) {
}
}
export default {
name: 'profileList',
data() {
return {
testList: {
url: '/api/v1/bo/sysMgt/adminList',
row: {},
authType: [],
statType: [],
cate2Code: "",
totalItems: 0,
// 테이블 리스트 데이터
perPageCnt: 20,
grid: {
url: '/api/v1/bo/sendNumMgt/profileList',
perPage: 20,
pagination: true,
isCheckbox: true,
isCheckbox: false,
initialRequest: false,
addCls: 'box_OFvis',
header: [
[
{ header: 'NO', childNames: [] },
{ header: '권한', childNames: [] },
{ header: '이름(대리점명)', childNames: [] },
{ header: 'ID', childNames: [] },
{ header: '고객사명', childNames: [] },
{ header: '사업자번호', childNames: [] },
{ header: '발신프로필', childNames: [] },
{ header: '발신프로필key', childNames: [] },
{ header: '상태', childNames: [] },
{ header: '등록일', childNames: [] }
{ header: '등록일', childNames: [] },
]
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'auth', header: '권한', align: 'left', width: 160 },
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
{ name: 'no', header: 'NO', align: 'center', width: 50 },
{ name: 'custNm', header: '고객사명', align: 'center', width: 200 },
{ name: 'bregNo', header: '사업자번호', align: 'center', width: 100, renderer: {type: customBRegNo}},
{ name: 'sendProfile', header: '발신프로필', align: 'center', width: 100},
{ name: 'sendProfileKey', header: '발신프로필key', align: 'center', width: 100},
{ name: 'stat', header: '상태', width: 100, cls: 'td_line' },
{ name: 'regDt', header: '등록일', align: 'center', width: 150},
],
noDataStr: '검색 결과가 없습니다.',
// params: {
// apprResult: '',
// searchType: '',
// searchText: '',
// startDate: '',
// endDate: ''
// },
params: {
searchType1: '',
searchType2: 'custNm',
searchText1: ''
},
excelHeader: []
}
};
},
components: {
customGrid: customGrid
},
customGrid: customGrid,
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
page: 1,
perPage: 20,
params: {
searchType1: '',
searchType2: '',
searchText1: ''
}
});
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/istAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {
let page = 1;
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
let isKeep = false;
isKeep = true;
if(getCondition) {
this.grid.pagePerRows = getCondition.perPage;
this.grid.params = getCondition.params;
page = getCondition.page;
isKeep = true;
}
this.search(isKeep);
},
methods: {
search: function(isKeep) {
console.log(this.testList.params);
this.$refs.table.search(this.testList.params, isKeep);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
sendStoreData: function() {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: {
searchType1: '',
searchType2: '',
searchText1: ''
}
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
//console.log("getCondition : "+ getCondition.perPage);
}
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
}
};
</script>

View File

@@ -212,6 +212,7 @@ export default {
// alert(chkList[i].adminId);
// }
const param = chkList.map((row)=>({adminId:row.adminId}));
console.log(param)
this.row.list = param;
console.log(this.row);
return true;

View File

@@ -5,16 +5,23 @@
*/
package kr.co.uplus.ez.api.attractMgt;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelReqDto;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelResDto;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListReqDto;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListResDto;
import kr.co.uplus.ez.common.components.ValidComponents;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.Map;
@RestController
@RequestMapping(value = "api/v1/bo/attractMgt")
@@ -23,32 +30,45 @@ public class AttractMgtController {
@Autowired
AttractMgtService attractService;
@Autowired
ValidComponents validComponents;
/**
* date : 2022. 4. 26.
* auth : ckr
* desc : 유치채널 목록조회
* @param paramMap
* @param channelListReqDto
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "channelList", notes = "유치채널 목록조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "/channelList" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage channelList(@RequestBody Map<String, Object> paramMap) throws Exception{
return attractService.channelList(paramMap);
public ChannelListResDto channelList(@RequestBody @Valid ChannelListReqDto channelListReqDto, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new ChannelListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return attractService.channelList(channelListReqDto);
}
/**
* date : 2022. 4. 26.
* auth : ckr
* desc : 유치채널 목록 엑셀 다운로드
* @param paramMap
* @param channelListExcelReqDto
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "channelListExcel", notes = "유치채널 목록 엑셀 다운로드")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "/channelListExcel" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage channelListExcel(@RequestBody Map<String, Object> paramMap) throws Exception{
return attractService.channelListExcel(paramMap);
public ChannelListExcelResDto channelListExcel(@RequestBody @Valid ChannelListExcelReqDto channelListExcelReqDto, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new ChannelListExcelResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return attractService.channelListExcel(channelListExcelReqDto);
}
/**
@@ -57,11 +77,13 @@ public class AttractMgtController {
* desc : 유치 채널 상세 조회
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "channelDetail", notes = "유치 채널 상세 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "/channelDetail" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage channelDetail(@RequestBody Map<String, Object> paramMap) throws Exception{
public ApiResponseMessage channelDetail(@RequestBody Map<String, Object> paramMap) {
return attractService.channelDetail(paramMap);
}
@@ -71,11 +93,11 @@ public class AttractMgtController {
* desc : 발송건수 엑셀 다운로드
* @param paramMap
* @return
* @throws Exception
* @
*/
@RequestMapping(value = "/sendNumberListExcel" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage sendNumberListExcel(@RequestBody Map<String, Object> paramMap) throws Exception{
public ApiResponseMessage sendNumberListExcel(@RequestBody Map<String, Object> paramMap) {
return attractService.sendNumberListExcel(paramMap);
}
}

View File

@@ -1,8 +1,10 @@
package kr.co.uplus.ez.api.attractMgt;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListReqDto;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public class AttractMgtMapper {
public interface AttractMgtMapper {
int selectAttractListTotalCnt(ChannelListReqDto channelListReqDto);
}

View File

@@ -1,15 +1,18 @@
package kr.co.uplus.ez.api.attractMgt;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelReqDto;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelResDto;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListReqDto;
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListResDto;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
@Service
public class AttractMgtService {
@@ -17,74 +20,24 @@ public class AttractMgtService {
* date : 2022. 4. 25.
* auth : ckr
* desc : 유치채널 목록조회
* @param paramMap
* @param channelListReqDto
* @return
*/
public ApiResponseMessage channelList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
public ChannelListResDto channelList(ChannelListReqDto channelListReqDto) {
data.put("totalCnt", "999");
data.put("currentPage", "1");
dataObj.put("paging", data);
for(int i=1; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+i);
data.put("regDt", "2022-03-10");
data.put("channelNm", "업체명");
data.put("adminId", "uplus01");
data.put("custNm", "유플러스");
data.put("bRegNo", "221-81-39938");
data.put("userNm", "유플러스스");
data.put("stat", "사용");
data.put("custType", "법인사용자");
data.put("totalSendingCnt", "1440000");
data.put("serviceId", "serviceId");
dataList.add(data);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
return new ChannelListResDto(ApiResponseCode.SUCCESS);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 유치채널 목록 엑셀 다운로드
* @param paramMap
* @param channelListExcelReqDto
* @return
*/
public ApiResponseMessage channelListExcel(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
public ChannelListExcelResDto channelListExcel(ChannelListExcelReqDto channelListExcelReqDto) {
data.put("totalCnt", "999");
data.put("currentPage", "1");
dataObj.put("paging", data);
for(int i=1; i<50; i++) {
data = new HashMap<>();
data.put("no", ""+i);
data.put("regDt", "2022-03-10");
data.put("channelNm", "업체명");
data.put("adminId", "uplus01");
data.put("custNm", "유플러스");
data.put("bRegNo", "221-81-39938");
data.put("userNm", "유플러스스");
data.put("stat", "사용");
data.put("custType", "법인사용자");
data.put("totalSendingCnt", "1440000");
data.put("serviceId", "serviceId");
dataList.add(data);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
return new ChannelListExcelResDto(ApiResponseCode.SUCCESS);
}
/**

View File

@@ -0,0 +1,32 @@
package kr.co.uplus.ez.api.attractMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ChannelInfo implements Serializable {
@ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String")
private String no;
@ApiModelProperty(example = "고객사명(이름)", name = "고객사명(이름)", dataType = "String")
private String custNm;
@ApiModelProperty(example = "사업자번호(생년월일)", name = "사업자번호(생년월일)", dataType = "String")
private String bRegNo;
@ApiModelProperty(example = "템플릿 코드", name = "템플릿 코드", dataType = "String")
private String tmpltCd;
@ApiModelProperty(example = "템플릿명", name = "템플릿명", dataType = "String")
private String tmpltNm;
@ApiModelProperty(example = "템플릿 유형", name = "템플릿 유형", notes = "항목 : (01: 기본형(Default), 02:부가정보형, 03:광고추가형, 04:복합형)", dataType = "String")
private String tmpltType;
@ApiModelProperty(example = "상태", name = "상태" , notes = "항목 : (T:신청완료, R:검수요청완료, Q:카카오 검수중, A:템플릿승인, S:반려)" , dataType = "String")
private String stat;
@ApiModelProperty(example = "반려사유", name = "반려사유", dataType = "String")
private String returnReason;
@ApiModelProperty(example = "발신프로필", name = "발신프로필", dataType = "String")
private String sendProfile;
@ApiModelProperty(example = "최종수정일자", name = "최종수정일자", dataType = "String")
private String lastChgDt;
}

View File

@@ -0,0 +1,19 @@
package kr.co.uplus.ez.api.attractMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ChannelListExcelReqDto implements Serializable {
@ApiModelProperty(example = "사용상태", name = "사용상태", notes = "항목 : 전체(Default)/사용 : Y/중지 : N", dataType = "String")
private String searchType1;
@ApiModelProperty(example = "검색조건", name = "검색조건", notes = "항목 : 고객사명 : custNm / 사업자번호 : bizNo / 인증코드 : authCd", dataType = "String")
private String searchType2;
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", dataType = "String")
private String searchText1;
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.attractMgt.dto;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ChannelListExcelResDto extends ResponseMessage implements Serializable {
// 데이터.
private ChannelListRes data;
public ChannelListExcelResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public ChannelListExcelResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public ChannelListExcelResDto(ApiResponseCode returnStr, ChannelListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,19 @@
package kr.co.uplus.ez.api.attractMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ChannelListReqDto implements Serializable {
@ApiModelProperty(example = "사용상태", name = "사용상태", notes = "항목 : 전체(Default)/사용 : Y/중지 : N", dataType = "String")
private String searchType1;
@ApiModelProperty(example = "검색조건", name = "검색조건", notes = "항목 : 고객사명 : custNm / 사업자번호 : bizNo / 인증코드 : authCd", dataType = "String")
private String searchType2;
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", dataType = "String")
private String searchText1;
}

View File

@@ -0,0 +1,15 @@
package kr.co.uplus.ez.api.attractMgt.dto;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class ChannelListRes implements Serializable {
private Paging paging;
private List<ChannelInfo> list;
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.attractMgt.dto;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ChannelListResDto extends ResponseMessage implements Serializable {
// 데이터.
private ChannelListRes data;
public ChannelListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public ChannelListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public ChannelListResDto(ApiResponseCode returnStr, ChannelListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -5,17 +5,6 @@
*/
package kr.co.uplus.ez.api.channelMgt;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@@ -25,6 +14,12 @@ import kr.co.uplus.ez.api.channelMgt.dto.TmpltListReqDto;
import kr.co.uplus.ez.api.channelMgt.dto.TmpltListResDto;
import kr.co.uplus.ez.common.components.ValidComponents;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@RestController
@RequestMapping(value = "api/v1/bo/channelMgt")
@@ -40,15 +35,15 @@ public class ChannelMgtController {
* date : 2022. 4. 25.
* auth : ckr
* desc : 알림톡 템플릿 목록 조회
* @param paramMap
* @param tmpltListReqDto
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "tmpltList", notes = "알림톡 템플릿 목록 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "tmpltList", method = { RequestMethod.POST })
@ResponseBody
public TmpltListResDto tmpltList(@RequestBody @Valid TmpltListReqDto tmpltListReqDto, BindingResult bindingResult) throws Exception{
public TmpltListResDto tmpltList(@RequestBody @Valid TmpltListReqDto tmpltListReqDto, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new TmpltListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
@@ -61,15 +56,15 @@ public class ChannelMgtController {
* date : 2022. 4. 25.
* auth : ckr
* desc : 알림톡 템플릿 엑셀 다운로드 목록 조회
* @param paramMap
* @param tmpltListExcelReqDto
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "tmpltListExcel", notes = "알림톡 템플릿 엑셀 다운로드 목록 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "tmpltListExcel", method = { RequestMethod.POST })
@ResponseBody
public TmpltListExcelResDto tmpltListExcel(@RequestBody @Valid TmpltListExcelReqDto tmpltListExcelReqDto, BindingResult bindingResult) throws Exception{
public TmpltListExcelResDto tmpltListExcel(@RequestBody @Valid TmpltListExcelReqDto tmpltListExcelReqDto, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new TmpltListExcelResDto(ApiResponseCode.CM_PARAMETER_ERROR);

View File

@@ -1,13 +1,8 @@
package kr.co.uplus.ez.api.custMgt;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import kr.co.uplus.ez.api.custMgt.dto.*;
import kr.co.uplus.ez.common.data.*;
import kr.co.uplus.ez.common.utils.EncryptionUtil;
import org.apache.commons.lang3.RandomStringUtils;
import org.mybatis.spring.SqlSessionTemplate;
import org.slf4j.Logger;
@@ -17,64 +12,11 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import kr.co.uplus.ez.api.custMgt.dto.AdminInfo;
import kr.co.uplus.ez.api.custMgt.dto.AdminInfoReqDto;
import kr.co.uplus.ez.api.custMgt.dto.AdminInfoResDto;
import kr.co.uplus.ez.api.custMgt.dto.AllMemoList;
import kr.co.uplus.ez.api.custMgt.dto.AllMemoListReqDto;
import kr.co.uplus.ez.api.custMgt.dto.AllMemoListRes;
import kr.co.uplus.ez.api.custMgt.dto.AllMemoListResDto;
import kr.co.uplus.ez.api.custMgt.dto.CarryOver;
import kr.co.uplus.ez.api.custMgt.dto.CarryOverListReqDto;
import kr.co.uplus.ez.api.custMgt.dto.CarryOverListRes;
import kr.co.uplus.ez.api.custMgt.dto.CarryOverListResDto;
import kr.co.uplus.ez.api.custMgt.dto.CustInfo;
import kr.co.uplus.ez.api.custMgt.dto.DeleteMemoReqDto;
import kr.co.uplus.ez.api.custMgt.dto.DeleteMemoResDto;
import kr.co.uplus.ez.api.custMgt.dto.DeleteUserReqDto;
import kr.co.uplus.ez.api.custMgt.dto.DeleteUserResDto;
import kr.co.uplus.ez.api.custMgt.dto.InsertMassUser;
import kr.co.uplus.ez.api.custMgt.dto.InsertMassUserReqDto;
import kr.co.uplus.ez.api.custMgt.dto.InsertMassUserRes;
import kr.co.uplus.ez.api.custMgt.dto.InsertMassUserResDto;
import kr.co.uplus.ez.api.custMgt.dto.InsertTestIdReqDto;
import kr.co.uplus.ez.api.custMgt.dto.InsertTestIdResDto;
import kr.co.uplus.ez.api.custMgt.dto.InsertUserReqDto;
import kr.co.uplus.ez.api.custMgt.dto.InsertUserResDto;
import kr.co.uplus.ez.api.custMgt.dto.MemberAdminDetailReqDto;
import kr.co.uplus.ez.api.custMgt.dto.MemberAdminDetailRes;
import kr.co.uplus.ez.api.custMgt.dto.MemberAdminDetailResDto;
import kr.co.uplus.ez.api.custMgt.dto.MemberDetail;
import kr.co.uplus.ez.api.custMgt.dto.MemberDetailReqDto;
import kr.co.uplus.ez.api.custMgt.dto.MemberDetailRes;
import kr.co.uplus.ez.api.custMgt.dto.MemberDetailResDto;
import kr.co.uplus.ez.api.custMgt.dto.MemberList;
import kr.co.uplus.ez.api.custMgt.dto.MemberListReqDto;
import kr.co.uplus.ez.api.custMgt.dto.MemberListRes;
import kr.co.uplus.ez.api.custMgt.dto.MemberListResDto;
import kr.co.uplus.ez.api.custMgt.dto.SubsDetail;
import kr.co.uplus.ez.api.custMgt.dto.SubsDetailReqDto;
import kr.co.uplus.ez.api.custMgt.dto.SubsDetailResDto;
import kr.co.uplus.ez.api.custMgt.dto.SubsInfo;
import kr.co.uplus.ez.api.custMgt.dto.SubsList;
import kr.co.uplus.ez.api.custMgt.dto.SubsListExcelReqDto;
import kr.co.uplus.ez.api.custMgt.dto.SubsListExcelResDto;
import kr.co.uplus.ez.api.custMgt.dto.SubsListReqDto;
import kr.co.uplus.ez.api.custMgt.dto.SubsListRes;
import kr.co.uplus.ez.api.custMgt.dto.SubsListResDto;
import kr.co.uplus.ez.api.custMgt.dto.SvcUserInfo;
import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoReqDto;
import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoResDto;
import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoTotalReqDto;
import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoTotalResDto;
import kr.co.uplus.ez.api.custMgt.dto.UpdateUserReqDto;
import kr.co.uplus.ez.api.custMgt.dto.UpdateUserResDto;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
import kr.co.uplus.ez.common.data.Const;
import kr.co.uplus.ez.common.data.ImUser;
import kr.co.uplus.ez.common.data.Paging;
import kr.co.uplus.ez.common.utils.EncryptionUtil;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CustMgtService {
@@ -244,7 +186,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 관리자ID,관리자명 수정
*
* @param updateAdminInfoReqDto
* @param adminInfoReqDto
* @return updateAdminInfoResDto
*/
public UpdateAdminInfoResDto updateAdminInfo(UpdateAdminInfoReqDto adminInfoReqDto) {
@@ -357,7 +299,7 @@ public class CustMgtService {
/**
* 사용자 상세 리스트 조회.
*
* @param memberDetailListReqDto
* @param memberAdminDetailReqDto
* @return MemberDetailListResDto
*/
public MemberAdminDetailResDto memberAdminDetail(MemberAdminDetailReqDto memberAdminDetailReqDto) {
@@ -404,7 +346,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 테스트ID 등록
*
* @param paramMap
* @param insertTestIdReqDto
* @return
*/
public InsertTestIdResDto insertTestId(InsertTestIdReqDto insertTestIdReqDto) {
@@ -507,7 +449,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 메모 삭제
*
* @param paramMap
* @param deleteMemoReqDto
* @return
*/
public DeleteMemoResDto deleteMemo(DeleteMemoReqDto deleteMemoReqDto) {
@@ -546,7 +488,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 사용자 정보 등록
*
* @param paramMap
* @param insertUserReqDto
* @return
*/
public InsertUserResDto insertUser(InsertUserReqDto insertUserReqDto) {
@@ -585,7 +527,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 사용자 정보 수정
*
* @param paramMap
* @param updateUserReqDto
* @return
*/
public UpdateUserResDto updateUser(UpdateUserReqDto updateUserReqDto) {
@@ -616,8 +558,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 사용자ID 대량등록
*
* @param paramMap
* @return
* @param insertMassUserReqDto
*/
public InsertMassUserResDto insertMassUser(InsertMassUserReqDto insertMassUserReqDto) {
@@ -700,7 +641,7 @@ public class CustMgtService {
/**
* date : 2022. 4. 25. auth : ckr desc : 사용자 정보 삭제
*
* @param paramMap
* @param deleteUserReqDto
* @return
*/
public DeleteUserResDto deleteUser(DeleteUserReqDto deleteUserReqDto) {
@@ -746,7 +687,7 @@ public class CustMgtService {
* date : 2022. 4. 25.
* auth : ckr
* desc : 관리자 정보(종합) 수정
* @param UpdateAdminInfoTotalReqDto
* @param updateAdminInfoTotalReqDto
* @return UpdateAdminInfoTotalResDto
* @
*/

View File

@@ -1,8 +1,49 @@
package kr.co.uplus.ez.api.riskMgt;
import kr.co.uplus.ez.api.riskMgt.dto.*;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public class RiskMgtMapper {
public interface RiskMgtMapper {
int selectSndrnoBlckTotalCnt(SendNumIntrcpListReqDto sendNumIntrcpListReqDto);
List<SendNumIntrcpList> selectSndrnoBlckList(SendNumIntrcpListReqDto sendNumIntrcpListReqDto);
SendNumIntrcpDetail selectSndrnoBlckDetail(String blckSndrno);
void insertSndrnoBlck(SendNumInsertIntrcpReqDto sendNumInsertIntrcpReqDto);
int updateSndrnoBlck(SendNumUpdateIntrcplReqDto sendNumUpdateIntrcplReqDto);
int deleteSndrnoBlck(SendNumDeleteIntrcpReqDto sendNumDeleteIntrcpReqDto);
int selectRcvblck080ListTotalCnt(ZezNumIntrcpListReqDto zezNumIntrcpListReqDto);
List<ZezNumIntrcpList> selectRcvblck080List(ZezNumIntrcpListReqDto zezNumIntrcpListReqDto);
int selectMsgBlckwordListTotalCnt(MsgIntrcpListReqDto msgIntrcpListReqDto);
List<MsgIntrcpList> selectMsgBlckwordList(MsgIntrcpListReqDto msgIntrcpListReqDto);
MsgIntrcpDetail selectMsgBlckwordDetail(MsgIntrcpDetailReqDto msgIntrcpDetailReqDto);
List<MsgBlckwordList> selectBlckwordDtlList(MsgIntrcpDetailReqDto msgIntrcpDetailReqDto);
void insertMsgBlckword(MsgInsertIntrcpReqDto msgInsertIntrcpReqDto);
void insertBlckwordDtl(List<MsgBlckwordList> msgBlckwordLists);
int updateMsgBlckword(MsgUpdateIntrcplReqDto msgUpdateIntrcplReqDto);
int deleteMsgBlckword(MsgDeleteIntrcpReqDto msgDeleteIntrcpReqDto);
int deleteBlckwordDtl(String seqNo);
int selectWebsndBlckListTotalCnt(WebInsertIntrcpReqDto webInsertIntrcpReqDto);
List<WebIntrcpList> selectWebsndBlckList(WebInsertIntrcpReqDto webInsertIntrcpReqDto);
}

View File

@@ -1,205 +1,283 @@
package kr.co.uplus.ez.api.riskMgt;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import kr.co.uplus.ez.api.riskMgt.dto.*;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.Const;
import kr.co.uplus.ez.common.data.Paging;
import org.mybatis.spring.SqlSessionTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
import java.util.ArrayList;
import java.util.List;
@Service
public class RiskMgtService {
private static final Logger logger = LoggerFactory.getLogger(RiskMgtService.class);
@Autowired
@Qualifier("sqlSessionTemplateDb1")
private SqlSessionTemplate sqlSessionMaster;
@Autowired
@Qualifier("sqlSessionTemplateDb2")
private SqlSessionTemplate sqlSessionSlave;
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 발신번호 차단 목록 조회
* @param paramMap
* @return
* @param sendNumIntrcpListReqDto
* @return SendNumIntrcpListResDto
*/
public ApiResponseMessage sendNumIntrcpList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
data.put("totalCnt","999");
data.put("currentPage","1");
dataObj.put("paging", data);
public SendNumIntrcpListResDto sendNumIntrcpList(SendNumIntrcpListReqDto sendNumIntrcpListReqDto) {
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+(i+1));
data.put("sendNum", "0212345678");
data.put("intrcpYn", "미차단");
data.put("sendType", "문자");
data.put("lastUpdateDt", "2022-03-10");
data.put("intrcpReason", "도박");
data.put("register", "kkkkkkf");
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
dataList.add(data);
// 현재 페이지.
String nowPage = String.valueOf(sendNumIntrcpListReqDto.getPage());
int totalCnt = riskMgtMapper.selectSndrnoBlckTotalCnt(sendNumIntrcpListReqDto);
if (totalCnt == 0) {
SendNumIntrcpListRes sendNumIntrcpListRes = new SendNumIntrcpListRes();
sendNumIntrcpListRes.setList(new ArrayList<>());
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
paging.setTotalCnt(String.valueOf(totalCnt));
sendNumIntrcpListRes.setPaging(paging);
return new SendNumIntrcpListResDto(ApiResponseCode.CM_NOT_FOUND, sendNumIntrcpListRes);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
int page = sendNumIntrcpListReqDto.getPage();
int pagePerRows = sendNumIntrcpListReqDto.getPagePerRows();
page = (page - 1) * pagePerRows;
sendNumIntrcpListReqDto.setPage(page);
List<SendNumIntrcpList> sendNumIntrcpListList = riskMgtMapper.selectSndrnoBlckList(sendNumIntrcpListReqDto);
SendNumIntrcpListRes sendNumIntrcpListRes = new SendNumIntrcpListRes();
sendNumIntrcpListRes.setList(sendNumIntrcpListList);
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
sendNumIntrcpListRes.setPaging(paging);
return new SendNumIntrcpListResDto(ApiResponseCode.SUCCESS, sendNumIntrcpListRes);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 발신번호 차단 상세 정보 조회
* @param paramMap
* @param sendNumIntrcpDetailReqDto
* @return
*/
public ApiResponseMessage sendNumIntrcpDetail(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
dataObj.put("sendNum", "0212345678");
dataObj.put("sendType", "공용");
dataObj.put("intrcpReason", "도박");
dataObj.put("memo", "고객사 요청");
dataObj.put("intrcpYn", "차단");
public SendNumIntrcpDetailResDto sendNumIntrcpDetail(SendNumIntrcpDetailReqDto sendNumIntrcpDetailReqDto) {
result.setData(dataObj);
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
return result;
SendNumIntrcpDetail sendNumIntrcpDetail = riskMgtMapper.selectSndrnoBlckDetail(sendNumIntrcpDetailReqDto.getBlckSndrno());
if(sendNumIntrcpDetail == null){
return new SendNumIntrcpDetailResDto(ApiResponseCode.CM_NOT_FOUND);
}
return new SendNumIntrcpDetailResDto(ApiResponseCode.SUCCESS, sendNumIntrcpDetail);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 발신번호 차단 신규 등록
* @param paramMap
* @param insertIntrcpReqDto
* @return
*/
public ApiResponseMessage sendNumInsertIntrcp(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public SendNumInsertIntrcpResDto sendNumInsertIntrcp(SendNumInsertIntrcpReqDto insertIntrcpReqDto) {
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
try{
insertIntrcpReqDto.setBlckYn(Const.COMM_YES);
//regId 들고오기
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserDetails userDetails = (UserDetails) principal;
String regId = userDetails.getUsername();
insertIntrcpReqDto.setRegId(regId);
riskMgtMapper.insertSndrnoBlck(insertIntrcpReqDto);
}catch (Exception e){
return new SendNumInsertIntrcpResDto(ApiResponseCode.CM_DB_QUERY_ERR);
}
return new SendNumInsertIntrcpResDto(ApiResponseCode.SUCCESS);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 발신번호 차단 수정
* @param paramMap
* @param sendNumUpdateIntrcplReqDto
* @return
*/
public ApiResponseMessage sendNumUpdateIntrcp(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public SendNumUpdateIntrcpResDto sendNumUpdateIntrcp(SendNumUpdateIntrcplReqDto sendNumUpdateIntrcplReqDto) {
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
sendNumUpdateIntrcplReqDto.setChgId("test");;
int result = riskMgtMapper.updateSndrnoBlck(sendNumUpdateIntrcplReqDto);
if(result > 0){
return new SendNumUpdateIntrcpResDto(ApiResponseCode.SUCCESS);
}else{
return new SendNumUpdateIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
}
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 발신번호 차단 삭제
* @param paramMap
* @param sendNumDeleteIntrcpReqDto
* @return
*/
public ApiResponseMessage sendNumDeleteIntrcp(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public SendNumDeleteIntrcpResDto sendNumDeleteIntrcp(SendNumDeleteIntrcpReqDto sendNumDeleteIntrcpReqDto) {
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
int result = riskMgtMapper.deleteSndrnoBlck(sendNumDeleteIntrcpReqDto);
if(result > 0){
return new SendNumDeleteIntrcpResDto(ApiResponseCode.SUCCESS);
}else{
return new SendNumDeleteIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
}
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 080수신번호 차단 목록 조회
* @param paramMap
* @param zezNumIntrcpListReqDto
* @return
*/
public ApiResponseMessage zezNumIntrcpList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
data.put("totalCnt","999");
data.put("currentPage","1");
dataObj.put("paging", data);
public ZezNumIntrcpListResDto zezNumIntrcpList(ZezNumIntrcpListReqDto zezNumIntrcpListReqDto) {
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+(i+1));
data.put("custNm", "가나다");
data.put("bRegNo", "123-11-12345");
data.put("authCd", "12345");
data.put("recvNum", "01012345678");
data.put("regDt", "2022-03-10");
data.put("regType", "자동등록");
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
dataList.add(data);
// 현재 페이지.
String nowPage = String.valueOf(zezNumIntrcpListReqDto.getPage());
int totalCnt = riskMgtMapper.selectRcvblck080ListTotalCnt(zezNumIntrcpListReqDto);
if (totalCnt == 0) {
ZezNumIntrcpListRes zezNumIntrcpListRes = new ZezNumIntrcpListRes();
zezNumIntrcpListRes.setList(new ArrayList<>());
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
paging.setTotalCnt(String.valueOf(totalCnt));
zezNumIntrcpListRes.setPaging(paging);
return new ZezNumIntrcpListResDto(ApiResponseCode.CM_NOT_FOUND, zezNumIntrcpListRes);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
int page = zezNumIntrcpListReqDto.getPage();
int pagePerRows = zezNumIntrcpListReqDto.getPagePerRows();
page = (page - 1) * pagePerRows;
zezNumIntrcpListReqDto.setPage(page);
List<ZezNumIntrcpList> zezNumIntrcpLists = riskMgtMapper.selectRcvblck080List(zezNumIntrcpListReqDto);
ZezNumIntrcpListRes zezNumIntrcpListRes = new ZezNumIntrcpListRes();
zezNumIntrcpListRes.setList(zezNumIntrcpLists);
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
zezNumIntrcpListRes.setPaging(paging);
return new ZezNumIntrcpListResDto(ApiResponseCode.SUCCESS, zezNumIntrcpListRes);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 메시지 차단 목록 조회
* @param paramMap
* @param msgNumIntrcpListReqDto
* @return
*/
public ApiResponseMessage msgIntrcpList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
data.put("totalCnt","999");
data.put("currentPage","1");
dataObj.put("paging", data);
public MsgIntrcpListResDto msgIntrcpList(MsgIntrcpListReqDto msgNumIntrcpListReqDto) {
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+(i+1));
data.put("intrcpMsg", "도박");
data.put("intrcpYn", "차단");
data.put("lastUpdateDt", "2022-03-10");
data.put("intrcpReason", "도박");
data.put("register", "Abcefu");
dataList.add(data);
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
// 현재 페이지.
String nowPage = String.valueOf(msgNumIntrcpListReqDto.getPage());
int totalCnt = riskMgtMapper.selectMsgBlckwordListTotalCnt(msgNumIntrcpListReqDto);
if (totalCnt == 0) {
MsgIntrcpListRes msgIntrcpListRes = new MsgIntrcpListRes();
msgIntrcpListRes.setList(new ArrayList<>());
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
paging.setTotalCnt(String.valueOf(totalCnt));
msgIntrcpListRes.setPaging(paging);
return new MsgIntrcpListResDto(ApiResponseCode.CM_NOT_FOUND, msgIntrcpListRes);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
int page = msgNumIntrcpListReqDto.getPage();
int pagePerRows = msgNumIntrcpListReqDto.getPagePerRows();
page = (page - 1) * pagePerRows;
msgNumIntrcpListReqDto.setPage(page);
List<MsgIntrcpList> msgIntrcpLists = riskMgtMapper.selectMsgBlckwordList(msgNumIntrcpListReqDto);
MsgIntrcpListRes msgIntrcpListRes = new MsgIntrcpListRes();
msgIntrcpListRes.setList(msgIntrcpLists);
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
msgIntrcpListRes.setPaging(paging);
return new MsgIntrcpListResDto(ApiResponseCode.SUCCESS, msgIntrcpListRes);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 메시지 차단 상세 정보 조회
* @param paramMap
* @param msgIntrcpDetailReqDto
* @return
*/
public ApiResponseMessage msgIntrcpDetail(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
public MsgIntrcpDetailResDto msgIntrcpDetail(MsgIntrcpDetailReqDto msgIntrcpDetailReqDto) {
dataObj.put("intrcpMsgId", "testMsgId");
dataObj.put("intrcpString1", "도박");
dataObj.put("intrcpString2", "광고");
dataObj.put("intrcpString3", "");
dataObj.put("intrcpString4", "");
dataObj.put("intrcpString5", "");
dataObj.put("intrcpString6", "");
dataObj.put("intrcpString7", "");
dataObj.put("intrcpString8", "");
dataObj.put("intrcpString9", "");
dataObj.put("intrcpString10", "");
dataObj.put("condition", "OR");
dataObj.put("intrcpReason", "도박");
dataObj.put("memo", "가나다라");
dataObj.put("intrcpYn", "차단");
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
result.setData(dataObj);
MsgIntrcpDetail msgIntrcpDetail = riskMgtMapper.selectMsgBlckwordDetail(msgIntrcpDetailReqDto);
return result;
if(msgIntrcpDetail == null){
return new MsgIntrcpDetailResDto(ApiResponseCode.CM_NOT_FOUND);
}
List<MsgBlckwordList> msgBlckwordLists = riskMgtMapper.selectBlckwordDtlList(msgIntrcpDetailReqDto);
msgIntrcpDetail.setList(msgBlckwordLists);
return new MsgIntrcpDetailResDto(ApiResponseCode.SUCCESS, msgIntrcpDetail);
}
/**
@@ -209,70 +287,111 @@ public class RiskMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage msgInsertIntrcp(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public MsgInsertIntrcpResDto msgInsertIntrcp(MsgInsertIntrcpReqDto msgInsertIntrcpReqDto) {
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
try{
riskMgtMapper.insertMsgBlckword(msgInsertIntrcpReqDto);
//TODO 차단문구 등록
riskMgtMapper.insertBlckwordDtl(msgInsertIntrcpReqDto.getList());
}catch (Exception e){
return new MsgInsertIntrcpResDto(ApiResponseCode.CM_DB_QUERY_ERR);
}
return new MsgInsertIntrcpResDto(ApiResponseCode.SUCCESS);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 메시지 차단 수정
* @param paramMap
* @param msgUpdateIntrcplReqDto
* @return
*/
public ApiResponseMessage msgUpdateIntrcp(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public MsgUpdateIntrcpResDto msgUpdateIntrcp(MsgUpdateIntrcplReqDto msgUpdateIntrcplReqDto) {
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
int result = riskMgtMapper.updateMsgBlckword(msgUpdateIntrcplReqDto);
if(result > 0){
int subResult = riskMgtMapper.deleteBlckwordDtl(msgUpdateIntrcplReqDto.getSeqNo());
if(subResult > 0){
riskMgtMapper.insertBlckwordDtl(msgUpdateIntrcplReqDto.getList());
}
return new MsgUpdateIntrcpResDto(ApiResponseCode.SUCCESS);
}else{
return new MsgUpdateIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
}
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 메시지 차단 삭제
* @param paramMap
* @param msgDeleteIntrcpReqDto
* @return
*/
public ApiResponseMessage msgDeleteIntrcp(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public MsgDeleteIntrcpResDto msgDeleteIntrcp(MsgDeleteIntrcpReqDto msgDeleteIntrcpReqDto) {
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
int result = riskMgtMapper.deleteMsgBlckword(msgDeleteIntrcpReqDto);
riskMgtMapper.deleteBlckwordDtl(msgDeleteIntrcpReqDto.getSeqNo());
return new MsgDeleteIntrcpResDto(ApiResponseCode.SUCCESS);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 차단 내역 목록 조회
* @param paramMap
* @param webInsertIntrcpReqDto
* @return
*/
public ApiResponseMessage allIntrcpList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
data.put("totalCnt","999");
data.put("currentPage","1");
dataObj.put("paging", data);
public WebIntrcpListResDto webIntrcpList(WebInsertIntrcpReqDto webInsertIntrcpReqDto) {
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+(i+1));
data.put("intrcpType", "발신번호차단");
data.put("sendId", "Abcd");
data.put("sendNum", "021540000");
data.put("custNm", "가나다");
data.put("custId", "Uplus01");
data.put("bRegNo", "123-11-12345");
data.put("recvNum", "01022223333");
data.put("intrcpReason", "도착");
data.put("sendDt", "2-03-22");
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
dataList.add(data);
// 현재 페이지.
String nowPage = String.valueOf(webInsertIntrcpReqDto.getPage());
int totalCnt = riskMgtMapper.selectWebsndBlckListTotalCnt(webInsertIntrcpReqDto);
if (totalCnt == 0) {
WebIntrcpListRes webIntrcpListRes = new WebIntrcpListRes();
webIntrcpListRes.setList(new ArrayList<>());
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
paging.setTotalCnt(String.valueOf(totalCnt));
webIntrcpListRes.setPaging(paging);
return new WebIntrcpListResDto(ApiResponseCode.CM_NOT_FOUND, webIntrcpListRes);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
int page = webInsertIntrcpReqDto.getPage();
int pagePerRows = webInsertIntrcpReqDto.getPagePerRows();
page = (page - 1) * pagePerRows;
webInsertIntrcpReqDto.setPage(page);
List<WebIntrcpList> webIntrcpLists = riskMgtMapper.selectWebsndBlckList(webInsertIntrcpReqDto);
WebIntrcpListRes webIntrcpListRes = new WebIntrcpListRes();
webIntrcpListRes.setList(webIntrcpLists);
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
webIntrcpListRes.setPaging(paging);
return new WebIntrcpListResDto(ApiResponseCode.SUCCESS, webIntrcpListRes);
}
}

View File

@@ -5,16 +5,18 @@
*/
package kr.co.uplus.ez.api.riskMgt;
import java.util.Map;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import kr.co.uplus.ez.api.riskMgt.dto.*;
import kr.co.uplus.ez.common.components.ValidComponents;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@RestController
@RequestMapping(value = "api/v1/bo/riskMgt")
@@ -23,18 +25,29 @@ public class RistMgtController {
@Autowired
RiskMgtService riskService;
@Autowired
ValidComponents validComponents;
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 발신번호 차단 목록 조회
*
* @param paramMap
* @return
* @throws Exception
* @
*/
@RequestMapping(value = "/sendNum/intrcpList" , method = {RequestMethod.POST})
@ApiOperation(value = "/sendNum/intrcpList", notes = "발신번호 차단 목록 조회")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/sendNum/intrcpList", method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage sendNumIntrcpList(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.sendNumIntrcpList(paramMap);
public SendNumIntrcpListResDto sendNumIntrcpList(@RequestBody @Valid SendNumIntrcpListReqDto sendNumIntrcpListReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new SendNumIntrcpListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.sendNumIntrcpList(sendNumIntrcpListReqDto);
}
/**
@@ -43,12 +56,19 @@ public class RistMgtController {
* desc : 발신번호 차단 상세 정보 조회
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/sendNum/intrcpDetail", notes = "발신번호 차단 상세 정보 조회")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/sendNum/intrcpDetail" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage sendNumIntrcpDetail(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.sendNumIntrcpDetail(paramMap);
public SendNumIntrcpDetailResDto sendNumIntrcpDetail(@RequestBody @Valid SendNumIntrcpDetailReqDto sendNumIntrcpDetailReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new SendNumIntrcpDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.sendNumIntrcpDetail(sendNumIntrcpDetailReqDto);
}
/**
@@ -57,12 +77,19 @@ public class RistMgtController {
* desc : 발신번호 차단 신규 등록
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/sendNum/insertIntrcp", notes = "발신번호 차단 신규 등록")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/sendNum/insertIntrcp" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage sendNumInsertIntrcp(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.sendNumInsertIntrcp(paramMap);
public SendNumInsertIntrcpResDto sendNumInsertIntrcp(@RequestBody @Valid SendNumInsertIntrcpReqDto insertIntrcpReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new SendNumInsertIntrcpResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.sendNumInsertIntrcp(insertIntrcpReqDto);
}
/**
@@ -71,12 +98,19 @@ public class RistMgtController {
* desc : 발신번호 차단 수정
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/sendNum/updateIntrcp", notes = "발신번호 차단 수정 ")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/sendNum/updateIntrcp" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage sendNumUpdateIntrcp(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.sendNumUpdateIntrcp(paramMap);
public SendNumUpdateIntrcpResDto sendNumUpdateIntrcp(@RequestBody @Valid SendNumUpdateIntrcplReqDto sendNumUpdateIntrcplReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new SendNumUpdateIntrcpResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.sendNumUpdateIntrcp(sendNumUpdateIntrcplReqDto);
}
/**
@@ -85,12 +119,19 @@ public class RistMgtController {
* desc : 발신번호 차단 삭제
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/sendNum/deleteIntrcp", notes = "발신번호 차단 삭제 ")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/sendNum/deleteIntrcp" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage sendNumDeleteIntrcp(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.sendNumDeleteIntrcp(paramMap);
public SendNumDeleteIntrcpResDto sendNumDeleteIntrcp(@RequestBody @Valid SendNumDeleteIntrcpReqDto sendNumDeleteIntrcpReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new SendNumDeleteIntrcpResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.sendNumDeleteIntrcp(sendNumDeleteIntrcpReqDto);
}
/**
@@ -99,12 +140,19 @@ public class RistMgtController {
* desc : 080수신번호 차단 목록 조회
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/zezNum/intrcpList", notes = "080수신번호 차단 목록 조회")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/zezNum/intrcpList" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage zezNumIntrcpList(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.zezNumIntrcpList(paramMap);
public ZezNumIntrcpListResDto zezNumIntrcpList(@RequestBody @Valid ZezNumIntrcpListReqDto zezNumIntrcpListReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new ZezNumIntrcpListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.zezNumIntrcpList(zezNumIntrcpListReqDto);
}
/**
@@ -113,12 +161,19 @@ public class RistMgtController {
* desc : 메시지 차단 목록 조회
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/msg/intrcpList", notes = "메시지 차단 목록 조회")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/msg/intrcpList" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage msgIntrcpList(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.msgIntrcpList(paramMap);
public MsgIntrcpListResDto msgIntrcpList(@RequestBody @Valid MsgIntrcpListReqDto msgNumIntrcpListReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new MsgIntrcpListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.msgIntrcpList(msgNumIntrcpListReqDto);
}
/**
@@ -127,12 +182,19 @@ public class RistMgtController {
* desc : 메시지 차단 상세 정보 조회
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/msg/intrcpDetail", notes = "메시지 차단 상세 정보 조회")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/msg/intrcpDetail" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage msgIntrcpDetail(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.msgIntrcpDetail(paramMap);
public MsgIntrcpDetailResDto msgIntrcpDetail(@RequestBody @Valid MsgIntrcpDetailReqDto msgIntrcpDetailReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new MsgIntrcpDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.msgIntrcpDetail(msgIntrcpDetailReqDto);
}
/**
@@ -141,12 +203,19 @@ public class RistMgtController {
* desc : 메시지 차단 신규 등록
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/msg/insertIntrcp", notes = "메시지 차단 신규 등록")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/msg/insertIntrcp" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage msgInsertIntrcp(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.msgInsertIntrcp(paramMap);
public MsgInsertIntrcpResDto msgInsertIntrcp(@RequestBody @Valid MsgInsertIntrcpReqDto msgInsertIntrcpReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new MsgInsertIntrcpResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.msgInsertIntrcp(msgInsertIntrcpReqDto);
}
/**
@@ -155,12 +224,19 @@ public class RistMgtController {
* desc : 메시지 차단 수정
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/msg/updateIntrcp", notes = "메시지 차단 수정")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/msg/updateIntrcp" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage msgUpdateIntrcp(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.msgUpdateIntrcp(paramMap);
public MsgUpdateIntrcpResDto msgUpdateIntrcp(@RequestBody @Valid MsgUpdateIntrcplReqDto msgUpdateIntrcplReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new MsgUpdateIntrcpResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.msgUpdateIntrcp(msgUpdateIntrcplReqDto);
}
/**
@@ -169,25 +245,39 @@ public class RistMgtController {
* desc : 메시지 차단 삭제
* @param paramMap
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "/msg/deleteIntrcp", notes = "메시지 차단 삭제")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/msg/deleteIntrcp" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage msgDeleteIntrcp(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.msgDeleteIntrcp(paramMap);
public MsgDeleteIntrcpResDto msgDeleteIntrcp(@RequestBody @Valid MsgDeleteIntrcpReqDto msgDeleteIntrcpReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new MsgDeleteIntrcpResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.msgDeleteIntrcp(msgDeleteIntrcpReqDto);
}
/**
* date : 2022. 4. 25.
* auth : ckr
* desc : 차단 내역 목록 조회
* desc : 웹발송 차단 내역 목록 조회
* @param paramMap
* @return
* @throws Exception
* @
*/
@RequestMapping(value = "/all/intrcpList" , method = {RequestMethod.POST})
@ApiOperation(value = "/web/intrcpList", notes = "웹발송 차단 내역 목록 조회")
@ApiResponses({
@ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS")
})
@RequestMapping(value = "/web/intrcpList" , method = {RequestMethod.POST})
@ResponseBody
public ApiResponseMessage allIntrcpList(@RequestBody Map<String, Object> paramMap) throws Exception{
return riskService.allIntrcpList(paramMap);
public WebIntrcpListResDto webIntrcpList(@RequestBody @Valid WebInsertIntrcpReqDto webInsertIntrcpReqDto, BindingResult bindingResult) {
if(validComponents.validParameter(bindingResult)) {
return new WebIntrcpListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return riskService.webIntrcpList(webInsertIntrcpReqDto);
}
}

View File

@@ -0,0 +1,16 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgBlckwordList implements Serializable {
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
private String seqNo;
@ApiModelProperty(example = "차단문구", name = "차단문구", dataType = "String")
private String word;
}

View File

@@ -0,0 +1,19 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class MsgDeleteIntrcpReqDto implements Serializable {
@NotNull
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
private String seqNo;
private List<MsgBlckwordList> list;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgDeleteIntrcpResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private Object data;
public MsgDeleteIntrcpResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public MsgDeleteIntrcpResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public MsgDeleteIntrcpResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,21 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class MsgInsertIntrcpReqDto implements Serializable {
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
private String blckContCd;
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
private String memo;
private List<MsgBlckwordList> list;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgInsertIntrcpResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private Object data;
public MsgInsertIntrcpResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public MsgInsertIntrcpResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public MsgInsertIntrcpResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,27 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpDetail implements Serializable {
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
private String seqNo;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
private String blckContCd;
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
private String blckYn;
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
private String chgDt;
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
private String memo;
private java.util.List<MsgBlckwordList> list;
}

View File

@@ -0,0 +1,16 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpDetailReqDto implements Serializable {
@NotNull
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
private String seqNo;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpDetailResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private MsgIntrcpDetail data;
public MsgIntrcpDetailResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public MsgIntrcpDetailResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public MsgIntrcpDetailResDto(ApiResponseCode returnStr, MsgIntrcpDetail data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,24 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpList implements Serializable {
@ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String")
private String no;
@ApiModelProperty(example = "차단메시지", name = "차단메시지", dataType = "String")
private String word;
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
private String blckYn;
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
private String lastChgDt;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
private String regId;
}

View File

@@ -0,0 +1,28 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpListReqDto implements Serializable {
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
private String regId;
@ApiModelProperty(example = "차단사유", name = "차단사유",dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "차단메시지", name = "차단메시지",dataType = "String")
private String word;
@NotNull
@ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String")
private int pagePerRows;
@NotNull
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
private int page;
}

View File

@@ -0,0 +1,15 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpListRes implements Serializable{
private Paging paging;
private List<MsgIntrcpList> list;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgIntrcpListResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private MsgIntrcpListRes data;
public MsgIntrcpListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public MsgIntrcpListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public MsgIntrcpListResDto(ApiResponseCode returnStr, MsgIntrcpListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class MsgUpdateIntrcpResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private Object data;
public MsgUpdateIntrcpResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public MsgUpdateIntrcpResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public MsgUpdateIntrcpResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,25 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class MsgUpdateIntrcplReqDto implements Serializable {
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
private String seqNo;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
private String blckContCd;
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
private String blckYn;
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
private String memo;
private List<MsgBlckwordList> list;
}

View File

@@ -0,0 +1,16 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumDeleteIntrcpReqDto implements Serializable {
@NotNull
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String blckSndrno;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumDeleteIntrcpResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private Object data;
public SendNumDeleteIntrcpResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendNumDeleteIntrcpResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendNumDeleteIntrcpResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,30 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumInsertIntrcpReqDto implements Serializable {
@NotNull
@ApiModelProperty(example = "검색어 (발신번호)", name = "검색어 (발신번호)", dataType = "String")
private String blckSndrno;
@NotNull
@ApiModelProperty(example = "발송타입", name = "발송타입",dataType = "String")
private String sndblckTpCd;
@NotNull
@ApiModelProperty(example = "차단사유", name = "차단사유",dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "메모", name = "메모",dataType = "String")
private String meno;
/** 차단 여부*/
@ApiModelProperty(example = "차단여부", name = "차단여부",dataType = "String")
private String blckYn;
@ApiModelProperty(example = "등록자", name = "등록자",dataType = "String")
private String regId;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumInsertIntrcpResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private Object data;
public SendNumInsertIntrcpResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendNumInsertIntrcpResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendNumInsertIntrcpResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,26 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpDetail implements Serializable {
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String blcksndrno;
@ApiModelProperty(example = "발송타입", name = "발송타입", dataType = "String")
private String sndblckTpCd;
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
private String blckYn;
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
private String chgDt;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
private String regId;
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
private String meno;
}

View File

@@ -0,0 +1,16 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpDetailReqDto implements Serializable {
@NotNull
@ApiModelProperty(example = "검색어 (발신번호)", name = "검색어 (발신번호)", dataType = "String")
private String blckSndrno;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpDetailResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private SendNumIntrcpDetail data;
public SendNumIntrcpDetailResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendNumIntrcpDetailResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendNumIntrcpDetailResDto(ApiResponseCode returnStr, SendNumIntrcpDetail data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,26 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpList implements Serializable {
@ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String")
private String no;
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String blcksndrno;
@ApiModelProperty(example = "발송타입", name = "발송타입", dataType = "String")
private String sndblckTpCd;
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
private String blckYn;
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
private String lastChgDt;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
private String regId;
}

View File

@@ -0,0 +1,32 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpListReqDto implements Serializable {
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
private String regId;
@ApiModelProperty(example = "차단사유", name = "차단사유",dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "차단여부", name = "차단여부",dataType = "String")
private String blckYn;
@ApiModelProperty(example = "발송타입", name = "발송타입",dataType = "String")
private String sndblckTpCd;
@ApiModelProperty(example = "검색어 (발신번호)", name = "검색어 (발신번호)", dataType = "String")
private String blckSndrno;
@NotNull
@ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String")
private int pagePerRows;
@NotNull
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
private int page;
}

View File

@@ -0,0 +1,15 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpListRes implements Serializable{
private Paging paging;
private List<SendNumIntrcpList> list;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumIntrcpListResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private SendNumIntrcpListRes data;
public SendNumIntrcpListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendNumIntrcpListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendNumIntrcpListResDto(ApiResponseCode returnStr, SendNumIntrcpListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumUpdateIntrcpResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private Object data;
public SendNumUpdateIntrcpResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendNumUpdateIntrcpResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendNumUpdateIntrcpResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class SendNumUpdateIntrcplReqDto implements Serializable {
@NotNull
@ApiModelProperty(example = "검색어 (발신번호)", name = "검색어 (발신번호)", dataType = "String")
private String blckSndrno;
@ApiModelProperty(example = "발송타입", name = "발송타입", dataType = "String")
private String sndblckTpCd;
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
private String blckYn;
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
private String chgDt;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
private String regId;
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
private String meno;
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
private String chgId;
}

View File

@@ -0,0 +1,36 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class WebInsertIntrcpReqDto implements Serializable {
@ApiModelProperty(example = "발송일", name = "발송일", dataType = "String")
private String blckDt;
@ApiModelProperty(example = "차단사유", name = "차단사유",dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "차단구분", name = "차단구분",dataType = "String")
private String blckTpCd;
@ApiModelProperty(example = "발신번호", name = "발신번호",dataType = "String")
private String sndrno;
@ApiModelProperty(example = "수신번호", name = "수신번호", dataType = "String")
private String rcvno;
@ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 고객사명/사업자번호/발송ID", dataType = "String")
private String searchType1;
@ApiModelProperty(example = "검색어 (입력항목)", name = "검색어 (입력항목)", dataType = "String")
private String searchText1;
@NotNull
@ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String")
private int pagePerRows;
@NotNull
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
private int page;
}

View File

@@ -0,0 +1,30 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class WebIntrcpList implements Serializable {
@ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String")
private String no;
@ApiModelProperty(example = "차단구분", name = "차단구분", dataType = "String")
private String blckTpCd;
@ApiModelProperty(example = "발송ID", name = "발송ID", dataType = "String")
private String userId;
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String sndrno;
@ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String")
private String custNm;
@ApiModelProperty(example = "사업자번호", name = "사업자번호", dataType = "String")
private String bizrno;
@ApiModelProperty(example = "수신번호", name = "수신번호", dataType = "String")
private String rcvno;
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
private String blckRsnCd;
@ApiModelProperty(example = "발송일자", name = "발송일자", dataType = "String")
private String blckDt;
}

View File

@@ -0,0 +1,15 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class WebIntrcpListRes implements Serializable{
private Paging paging;
private List<WebIntrcpList> list;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class WebIntrcpListResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private WebIntrcpListRes data;
public WebIntrcpListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public WebIntrcpListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public WebIntrcpListResDto(ApiResponseCode returnStr, WebIntrcpListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,27 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ZezNumIntrcpList implements Serializable {
@ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String")
private String no;
@ApiModelProperty(example = "고객사", name = "고객사", dataType = "String")
private String custNm;
@ApiModelProperty(example = "사업자번호", name = "사업자번호", dataType = "String")
private String bizrno;
@ApiModelProperty(example = "인증코드", name = "인증코드",dataType = "String")
private String authcd080;
@ApiModelProperty(example = "수신번호", name = "수신번호", dataType = "String")
private String rcvblckno;
@ApiModelProperty(example = "등록일", name = "등록일", dataType = "String")
private String regDt;
@ApiModelProperty(example = "등록구분", name = "등록구분", dataType = "String")
private String regTpCd;
}

View File

@@ -0,0 +1,28 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ZezNumIntrcpListReqDto implements Serializable {
@ApiModelProperty(example = "고객사", name = "고객사", dataType = "String")
private String custNm;
@ApiModelProperty(example = "인증코드", name = "인증코드",dataType = "String")
private String authcd080;
@ApiModelProperty(example = "수신번호", name = "수신번호", dataType = "String")
private String rcvblckno;
@NotNull
@ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String")
private int pagePerRows;
@NotNull
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
private int page;
}

View File

@@ -0,0 +1,15 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("serial")
@Data
public class ZezNumIntrcpListRes implements Serializable{
private Paging paging;
private List<ZezNumIntrcpList> list;
}

View File

@@ -0,0 +1,33 @@
package kr.co.uplus.ez.api.riskMgt.dto;
import io.swagger.annotations.ApiModelProperty;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
import java.io.Serializable;
@SuppressWarnings("serial")
@Data
public class ZezNumIntrcpListResDto extends ResponseMessage implements Serializable{
@ApiModelProperty(example = "데이터")
private ZezNumIntrcpListRes data;
public ZezNumIntrcpListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public ZezNumIntrcpListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public ZezNumIntrcpListResDto(ApiResponseCode returnStr, ZezNumIntrcpListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -7,13 +7,34 @@ package kr.co.uplus.ez.api.sendNumMgt;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListResDto;
import kr.co.uplus.ez.common.components.ValidComponents;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
@RestController
@@ -23,6 +44,8 @@ public class SendNumMgtController {
@Autowired
SendNumMgtService sendNumService;
@Autowired
ValidComponents validComponents;
/**
* date : 2022. 4. 25.
* auth : ckr
@@ -30,10 +53,17 @@ public class SendNumMgtController {
* @param paramMap
* @throws Exception
*/
@RequestMapping(value = "/profileList" , method = {RequestMethod.POST})
@ApiOperation(value = "/profileList", notes = "발신 프로필 목록 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "profileList", method = { RequestMethod.POST })
@ResponseBody
public ApiResponseMessage profileList(@RequestBody Map<String, Object> paramMap) throws Exception{
return sendNumService.profileList(paramMap);
public ProfileListResDto profileList(@RequestBody @Valid ProfileListReqDto profileListReqDto, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new ProfileListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return sendNumService.profileList(profileListReqDto);
}
/**
@@ -43,10 +73,17 @@ public class SendNumMgtController {
* @param paramMap
* @throws Exception
*/
@RequestMapping(value = "/numberList" , method = {RequestMethod.POST})
@ApiOperation(value = "/numberList", notes = "문자 발신 번호 목록 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "numberList", method = { RequestMethod.POST })
@ResponseBody
public ApiResponseMessage numberList(@RequestBody Map<String, Object> paramMap) throws Exception{
return sendNumService.numberList(paramMap);
public SendNumberListResDto numberList(@RequestBody @Valid SendNumberListReqDto sendNumberListReqDto, BindingResult bindingResult) throws Exception{
if (validComponents.validParameter(bindingResult)) {
return new SendNumberListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return sendNumService.numberList(sendNumberListReqDto);
}
/**
@@ -56,10 +93,17 @@ public class SendNumMgtController {
* @param paramMap
* @throws Exception
*/
@RequestMapping(value = "/deleteNumber" , method = {RequestMethod.POST})
@ApiOperation(value = "/deleteNumber", notes = "문자 발신 번호 삭제")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "deleteNumber", method = { RequestMethod.POST })
@ResponseBody
public ApiResponseMessage deleteNumber(@RequestBody Map<String, Object> paramMap) throws Exception{
return sendNumService.deleteNumber(paramMap);
public DeleteNumberResDto deleteNumber(@RequestBody @Valid DeleteNumberReqDto deleteNumberReqDto, BindingResult bindingResult) throws Exception{
if (validComponents.validParameter(bindingResult)) {
return new DeleteNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return sendNumService.deleteNumber(deleteNumberReqDto);
}
/**
@@ -69,10 +113,18 @@ public class SendNumMgtController {
* @param paramMap
* @throws Exception
*/
@RequestMapping(value = "/insertNumber" , method = {RequestMethod.POST})
@ApiOperation(value = "/insertNumber", notes = "문자 발신 번호 등록")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "insertNumber", method = { RequestMethod.POST })
@ResponseBody
public ApiResponseMessage insertNumber(@RequestBody Map<String, Object> paramMap) throws Exception{
return sendNumService.insertNumber(paramMap);
public InsertNumberResDto insertNumber(@RequestBody @Valid InsertNumberReqDto insertNumberReqDto, BindingResult bindingResult) throws Exception{
if (validComponents.validParameter(bindingResult)) {
return new InsertNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return sendNumService.insertNumber(insertNumberReqDto);
}
/**
@@ -82,10 +134,17 @@ public class SendNumMgtController {
* @param paramMap
* @throws Exception
*/
@RequestMapping(value = "/numberDetail" , method = {RequestMethod.POST})
@ApiOperation(value = "/numberDetail", notes = "문자 발신 번호 정보 상세 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "numberDetail", method = { RequestMethod.POST })
@ResponseBody
public ApiResponseMessage numberDetail(@RequestBody Map<String, Object> paramMap) throws Exception{
return sendNumService.numberDetail(paramMap);
public DetailNumberResDto numberDetail(@RequestBody @Valid DetailNumberReqDto detailNumberReqDto, BindingResult bindingResult) throws Exception{
if (validComponents.validParameter(bindingResult)) {
return new DetailNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return sendNumService.numberDetail(detailNumberReqDto);
}
/**
@@ -95,10 +154,17 @@ public class SendNumMgtController {
* @param paramMap
* @throws Exception
*/
@RequestMapping(value = "/adminList" , method = {RequestMethod.POST})
@ApiOperation(value = "/adminList", notes = "관리자ID 목록 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "adminList", method = { RequestMethod.POST })
@ResponseBody
public ApiResponseMessage adminList(@RequestBody Map<String, Object> paramMap) throws Exception{
return sendNumService.adminList(paramMap);
public SendAdminListResDto adminList(@RequestBody @Valid SendAdminListReqDto adminListReqDto, BindingResult bindingResult) throws Exception{
if (validComponents.validParameter(bindingResult)) {
return new SendAdminListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
}
return sendNumService.adminList(adminListReqDto);
}
/**

View File

@@ -1,8 +1,51 @@
package kr.co.uplus.ez.api.sendNumMgt;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumber;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumber;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberFile;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListReqDto;
@Mapper
public class SendNumMgtMapper {
interface SendNumMgtMapper {
int selectProfileTotalCnt(ProfileListReqDto profileListReqDto);
List<ProfileInfo> selectProfileList(ProfileListReqDto profileListReqDto);
int selectSendNumberTotalCnt(SendNumberListReqDto sendNumberListReqDto);
List<SendNumberInfo> selectSendNumberList(SendNumberListReqDto sendNumberListReqDto);
int selectAdminTotalCnt(SendAdminListReqDto adminListReqDto);
List<SendAdminInfo> selectAdminList(SendAdminListReqDto adminlistreqdto);
String selectUserSeqByAdminId(String adminId);
int deleteNumber(DeleteNumberReqDto deleteNumberReqDto);
void insertNumber(InsertNumberReqDto insertNumberReqDto);
void insertNumberDoc(InsertNumberFile insertNumberFile);
void insertNumberList(InsertNumber insertNumber);
String selectUserSeqByRegNo(DetailNumberReqDto detailNumberReqDto);
DetailNumber detailNumber(DetailNumberReqDto detailNumberReqDto);
List<AuthFileInfo> selectAuthFileList(DetailNumberReqDto detailNumberReqDto);
}

View File

@@ -1,18 +1,64 @@
package kr.co.uplus.ez.api.sendNumMgt;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.FilenameUtils;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListRes;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileList;
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumber;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumber;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberFile;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListRes;
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListResDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberInfo;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListReqDto;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListRes;
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListResDto;
import kr.co.uplus.ez.api.sysMgt.SysMgtMapper;
import kr.co.uplus.ez.api.sysMgt.dto.AdminDetail;
import kr.co.uplus.ez.api.sysMgt.dto.AdminDetailResDto;
import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminReqDto;
import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminResDto;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ApiResponseMessage;
import kr.co.uplus.ez.common.data.Paging;
import kr.co.uplus.ez.common.utils.EncryptionUtil;
import kr.co.uplus.ez.common.utils.FileUtil;
@Service
public class SendNumMgtService {
@Autowired
@Qualifier("sqlSessionTemplateDb1")
private SqlSessionTemplate sqlSessionMaster;
@Autowired
@Qualifier("sqlSessionTemplateDb2")
private SqlSessionTemplate sqlSessionSlave;
/**
* date : 2022. 4. 25.
* auth : ckr
@@ -20,30 +66,39 @@ public class SendNumMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage profileList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
data.put("totalCnt","999");
data.put("currentPage","1");
dataObj.put("paging", data);
public ProfileListResDto profileList(ProfileListReqDto profileListReqDto) {
SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class);
String nowPage = String.valueOf(profileListReqDto.getPage());
int totalCnt = sendNumMgtMapper.selectProfileTotalCnt(profileListReqDto);
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+(i+1));
data.put("custNm", "유플러스");
data.put("bRegNo", "229-81-39938");
data.put("sendProfile", "@유플러스");
data.put("sendProfileKey", "Ea98cv472cff7f5bdbc90");
data.put("stat", "사용");
data.put("regDt", "2022-03-10");
dataList.add(data);
if(totalCnt == 0) {
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
ProfileListRes profileListRes = new ProfileListRes();
profileListRes.setList(new ArrayList<>());
profileListRes.setPaging(paging);
return new ProfileListResDto(ApiResponseCode.CM_NOT_FOUND, profileListRes);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
int page = profileListReqDto.getPage();
int pagePerRows = profileListReqDto.getPage();
page = (page - 1) * pagePerRows;
profileListReqDto.setPage(page);
List<ProfileInfo> profileInfos = sendNumMgtMapper.selectProfileList(profileListReqDto);
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
ProfileListRes profileListRes = new ProfileListRes();
profileListRes.setList(profileInfos);
profileListRes.setPaging(paging);
return new ProfileListResDto(ApiResponseCode.SUCCESS, profileListRes);
}
/**
@@ -53,33 +108,37 @@ public class SendNumMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage numberList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
data.put("totalCnt","999");
data.put("currentPage","1");
dataObj.put("paging", data);
public SendNumberListResDto numberList(SendNumberListReqDto sendNumberListReqDto) {
SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class);
String nowPage = String.valueOf(sendNumberListReqDto.getPage());
int totalCnt = sendNumMgtMapper.selectSendNumberTotalCnt(sendNumberListReqDto);
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("no", ""+(i+1));
data.put("custNm", "유플러스");
data.put("adminId", "Uplus01");
data.put("register", "Uplus01");
data.put("bRegNo", "229-81-39938");
data.put("sendNum", "010-1234-1234");
data.put("apprStat", "승인완료");
data.put("regMethod", "본인인등");
data.put("regDt", "2022-03-10");
data.put("regNo", "12345");
dataList.add(data);
if(totalCnt == 0) {
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
SendNumberListRes sendNumberListRes = new SendNumberListRes();
sendNumberListRes.setList(new ArrayList<>());
sendNumberListRes.setPaging(paging);
return new SendNumberListResDto(ApiResponseCode.CM_NOT_FOUND, sendNumberListRes);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
int page = sendNumberListReqDto.getPage();
int pagePerRows = sendNumberListReqDto.getPage();
page = (page - 1) * pagePerRows;
sendNumberListReqDto.setPage(page);
List<SendNumberInfo> sendNumberInfos = sendNumMgtMapper.selectSendNumberList(sendNumberListReqDto);
Paging paging = new Paging();
paging.setPage(nowPage);
paging.setTotalCnt(String.valueOf(totalCnt));
SendNumberListRes sendNumberListRes = new SendNumberListRes();
sendNumberListRes.setList(sendNumberInfos);
sendNumberListRes.setPaging(paging);
return new SendNumberListResDto(ApiResponseCode.SUCCESS, sendNumberListRes);
}
/**
@@ -89,9 +148,17 @@ public class SendNumMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage deleteNumber(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public DeleteNumberResDto deleteNumber(DeleteNumberReqDto deleteNumberReqDto) {
SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class);
try {
sendNumMgtMapper.deleteNumber(deleteNumberReqDto);
} catch (Exception e) {
return new DeleteNumberResDto(ApiResponseCode.CM_DB_QUERY_ERR);
}
return new DeleteNumberResDto(ApiResponseCode.SUCCESS);
}
/**
@@ -101,9 +168,146 @@ public class SendNumMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage insertNumber(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
return result;
public InsertNumberResDto insertNumber(InsertNumberReqDto insertNumberReqDto) {
FileUtil fileUtil = new FileUtil();
SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class);
String adminId = insertNumberReqDto.getAdminId();
String userSeq = sendNumMgtMapper.selectUserSeqByAdminId(adminId);
insertNumberReqDto.setUserSeq(userSeq);
insertNumberReqDto.setReqCnt(insertNumberReqDto.getList().size()+1);
try {
// 1. EZ_SNDRNO_REG
sendNumMgtMapper.insertNumber(insertNumberReqDto);
String path = "C:/hubeasyfiles/sndrNo/"+insertNumberReqDto.getAdminId();
File dir = new File(path);
if(!dir.isDirectory()) {
dir.mkdirs();
}
for(int i=0;i<insertNumberReqDto.getAuthSendNum().size();i++) {
String docTpCd = "";
if(insertNumberReqDto.getAuthSendNum().size() == 2) { //서류 유형코드 구분
switch(i){
case 0:
docTpCd = "08"; // 통신서비스 이용 증명원
break;
case 1:
docTpCd = "07"; //재직증명서
break;
default:
docTpCd = "00";
break;
}
}
else if(insertNumberReqDto.getAuthSendNum().size() == 4) {//서류 유형코드 구분
switch(i){
case 0:
docTpCd = "03"; //위임수임관계확인서류
break;
case 1:
docTpCd = "04"; //위임장
break;
case 2:
docTpCd = "05"; //대리인 신분증 사본 인증
break;
case 3:
docTpCd = "07"; //재직증명서
break;
default:
docTpCd = "00";
break;
}
}
path += path +"/"+ docTpCd;
InsertNumberFile insertFile = new InsertNumberFile();
MultipartFile file = insertNumberReqDto.getAuthSendNum().get(i);
String docTitle = file.getName();
String fileNm = file.getOriginalFilename();
String filePath = path+"/"+file.getOriginalFilename();
long fileSize = file.getSize();
String regId = insertNumberReqDto.getRegId();
if(!fileUtil.upload(file, docTitle, path)) {//파일저장
return new InsertNumberResDto(ApiResponseCode.CM_DB_QUERY_ERR);//파일저장 실패시
}
//파일저장 성공시 insert
insertFile.setRegReqNo(insertNumberReqDto.getRegReqNo());
insertFile.setDocTpCd(docTpCd);
insertFile.setDocTitle(docTitle);
insertFile.setFileNm(fileNm);
insertFile.setFilePath(filePath);
insertFile.setFileSize(fileSize);
insertFile.setRegId(regId);
// 2. EZ_SNDRNO_DOC
sendNumMgtMapper.insertNumberDoc(insertFile);
}
for(int j=0;j<insertNumberReqDto.getAuthBsns().size();j++) {
String docTpCd = "";
switch(j){//서류 유형코드 구분
case 0:
docTpCd = "06"; //사업자등록증
break;
default:
docTpCd = "00";
break;
}
path += path +"/"+ docTpCd;
InsertNumberFile insertFile = new InsertNumberFile();
MultipartFile file = insertNumberReqDto.getAuthSendNum().get(j);
String docTitle = file.getName();
String fileNm = file.getOriginalFilename();
String filePath = path+"/"+file.getOriginalFilename();
long fileSize = file.getSize();
String regId = insertNumberReqDto.getRegId();
if(!fileUtil.upload(file, docTitle, path)) {//파일저장
return new InsertNumberResDto(ApiResponseCode.SE_UNKNOWN);// 파일저장 실패하면
}
insertFile.setRegReqNo(insertNumberReqDto.getRegReqNo());
insertFile.setDocTpCd(docTpCd);
insertFile.setDocTitle(docTitle);
insertFile.setFileNm(fileNm);
insertFile.setFilePath(filePath);
insertFile.setFileSize(fileSize);
insertFile.setRegId(regId);
// 3. EZ_SVC_SNDRNO
sendNumMgtMapper.insertNumberDoc(insertFile);
}
for(int k=0;k<insertNumberReqDto.getList().size();k++) {
InsertNumber insertNumber = insertNumberReqDto.getList().get(k);
insertNumber.setCustSeq(insertNumberReqDto.getUserSeq());
insertNumber.setRegReqNo(insertNumberReqDto.getRegReqNo());
insertNumber.setNmineeDivCd(insertNumberReqDto.getNmineeDivCd());
insertNumber.setInchDivCd(insertNumberReqDto.getInchDivCd());
sendNumMgtMapper.insertNumberList(insertNumber);
}
} catch (Exception e) {
return new InsertNumberResDto(ApiResponseCode.CM_DB_QUERY_ERR);
}
return new InsertNumberResDto(ApiResponseCode.SUCCESS);
}
/**
@@ -113,27 +317,23 @@ public class SendNumMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage numberDetail(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
dataObj.put("adminId", "Uplus01");
dataObj.put("custNm", "유플러스");
dataObj.put("bRegNo", "229-81-39938");
dataObj.put("authSendNumYn", "Y");
dataObj.put("authBsnsYn", "Y");
public DetailNumberResDto numberDetail(DetailNumberReqDto detailNumberReqDto) {
for(int i=0; i<10; i++) {
data = new HashMap<>();
data.put("sendNm", "테스트"+(i+1));
data.put("sendNum", "02-555-5555");
dataList.add(data);
SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class);
DetailNumber detailNumber = new DetailNumber();
try {
detailNumber = sendNumMgtMapper.detailNumber(detailNumberReqDto);
if(detailNumber == null) {
return new DetailNumberResDto(ApiResponseCode.CM_NOT_FOUND);
}
detailNumber.setList(sendNumMgtMapper.selectAuthFileList(detailNumberReqDto));
} catch (Exception e) {
return new DetailNumberResDto(ApiResponseCode.CM_DB_QUERY_ERR);
}
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
return new DetailNumberResDto(ApiResponseCode.SUCCESS, detailNumber);
}
/**
@@ -143,30 +343,25 @@ public class SendNumMgtService {
* @param paramMap
* @return
*/
public ApiResponseMessage adminList(Map<String, Object> paramMap) {
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
Map<String, Object> dataObj = new HashMap<>();
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String, Object> data = new HashMap<>();
public SendAdminListResDto adminList(SendAdminListReqDto adminListReqDto) {
SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class);
int totalCnt = sendNumMgtMapper.selectAdminTotalCnt(adminListReqDto);
data = new HashMap<>();
data.put("adminId", "Test");
data.put("bRegNo", "229-81-39938");
dataList.add(data);
if(totalCnt == 0) {
SendAdminListRes adminListRes = new SendAdminListRes();
adminListRes.setList(new ArrayList<>());
return new SendAdminListResDto(ApiResponseCode.CM_NOT_FOUND, adminListRes);
}
data = new HashMap<>();
data.put("adminId", "Test01");
data.put("bRegNo", "229-81-55555");
dataList.add(data);
List<SendAdminInfo> adminInfos = sendNumMgtMapper.selectAdminList(adminListReqDto);
data = new HashMap<>();
data.put("adminId", "Test02");
data.put("bRegNo", "229-81-44444");
dataList.add(data);
Paging paging = new Paging();
paging.setTotalCnt(String.valueOf(totalCnt));
dataObj.put("list", dataList);
result.setData(dataObj);
return result;
SendAdminListRes adminListRes = new SendAdminListRes();
adminListRes.setList(adminInfos);
return new SendAdminListResDto(ApiResponseCode.SUCCESS, adminListRes);
}
/**

View File

@@ -0,0 +1,27 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class AuthFileInfo implements Serializable{
@ApiModelProperty(example = "서류 유형 코드", name = "서류 유형 코드", dataType = "String")
private String docTpCd;
@ApiModelProperty(example = "서류 제목", name = "서류 제목", dataType = "String")
private String docTitle;
@ApiModelProperty(example = "파일 명", name = "파일 명", dataType = "String")
private String fileNm;
@ApiModelProperty(example = "파일 경로", name = "파일 경로", dataType = "String")
private String filePath;
@ApiModelProperty(example = "파일 크기", name = "파일 크기", dataType = "String")
private String fileSize;
}

View File

@@ -0,0 +1,12 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class AuthFileList implements Serializable{
List<AuthFileInfo> list;
}

View File

@@ -0,0 +1,17 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class DeleteNumber implements Serializable{
@ApiModelProperty(example = "등록번호", name = "등록번호", dataType = "String")
private String regNo;
@ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String")
private String adminId;
}

View File

@@ -0,0 +1,16 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class DeleteNumberReqDto implements Serializable{
@ApiModelProperty(example = "등록번호 리스트", name = "등록번호 리스트", dataType = "String")
private List<DeleteNumber> list;
}

View File

@@ -0,0 +1,32 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class DeleteNumberResDto extends ResponseMessage implements Serializable{
// 데이터.
private Object data;
public DeleteNumberResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public DeleteNumberResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public DeleteNumberResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,29 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class DetailNumber implements Serializable{
@ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String")
private String adminId;
@ApiModelProperty(example = "고객사명(이름)", name = "고객사명(이름)", dataType = "String")
private String custNm;
@ApiModelProperty(example = "사업자번호(생년월일)", name = "사업자번호(생년월일)", dataType = "String")
private String bRegNo;
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String regNo;
@ApiModelProperty(example = "명의자 구분", name = "명의자 구분", dataType = "String")
private String nmineeDivCd;
private List<AuthFileInfo> list;
@ApiModelProperty(example = "등록요청번호", name = "등록요청번호", dataType = "String", hidden=true)
private String regRegNo;
}

View File

@@ -0,0 +1,18 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class DetailNumberReqDto implements Serializable{
@ApiModelProperty(example = "등록번호", name = "등록번호", dataType = "String")
private String regNo;
@ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String")
private String adminId;
}

View File

@@ -0,0 +1,30 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class DetailNumberResDto extends ResponseMessage implements Serializable{
// 데이터.
private DetailNumber data;
public DetailNumberResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public DetailNumberResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public DetailNumberResDto(ApiResponseCode returnStr, DetailNumber data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,32 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class InsertNumber implements Serializable{
@ApiModelProperty(example = "발신번호 명", name = "발신번호 명", dataType = "String")
private String sendNm;
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String sendNum;
@ApiModelProperty(example = "고객일련번호", name = "고객일련번호", dataType = "String", hidden=true)
private String custSeq;
@ApiModelProperty(example = "등록요청번호", name = "등록요청번호", dataType = "String", hidden=true)
private String regReqNo;
@ApiModelProperty(example = "명의자구분코드", name = "명의자구분코드", dataType = "String", hidden=true)
private String nmineeDivCd;
@ApiModelProperty(example = "인앱채널구분코드", name = "인앱채널구분코드", dataType = "String", hidden=true)
private String inchDivCd;
@ApiModelProperty(example = "등록 ID", name = "등록 ID", dataType = "String", hidden=true)
private String regId;
}

View File

@@ -0,0 +1,18 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class InsertNumberFile implements Serializable{
private String regReqNo;
private String docNo;
private String docTpCd;
private String docTitle;
private String fileNm;
private String filePath;
private long fileSize;
private String regId;
}

View File

@@ -0,0 +1,53 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotNull;
import org.springframework.web.multipart.MultipartFile;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class InsertNumberReqDto implements Serializable{
@ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String")
private String adminId;
@ApiModelProperty(example = "고객사명(이름)", name = "고객사명(이름)", dataType = "String")
private String custNm;
@ApiModelProperty(example = "사업자번호(생년월일)", name = "사업자번호(생년월일)", dataType = "String")
private String bRegNo;
private List<InsertNumber> list;
@ApiModelProperty(example = "발신번호 인증 파일", name = "발신번호 인증 파일", dataType = "String")
private List<MultipartFile> authSendNum;
@ApiModelProperty(example = "사업자 인증 파일", name = "사업자 인증 파일", dataType = "String")
private List<MultipartFile> authBsns;
@ApiModelProperty(example = "명의자 구분 코드", name = "명의자 구분 코드", dataType = "String")
private String nmineeDivCd;
@ApiModelProperty(example = "인입채널 구분 코드", name = "인입채널 구분 코드", dataType = "String")
private String inchDivCd;
@NotNull
@ApiModelProperty(example = "등록 ID", name = "등록 ID", dataType = "String", hidden=true)
private String regId;
@ApiModelProperty(example = "이용자 일련번호", name = "이용자 일련번호", dataType = "String", hidden=true)
private String userSeq;
@ApiModelProperty(example = "등록요청번호", name = "등록요청번호", dataType = "String", hidden=true)
private String regReqNo;
@ApiModelProperty(example = "요청건수", name = "요청건수", dataType = "String", hidden=true)
private int reqCnt;
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class InsertNumberResDto extends ResponseMessage implements Serializable{
// 데이터.
private Object data;
public InsertNumberResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public InsertNumberResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public InsertNumberResDto(ApiResponseCode returnStr, Object data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,27 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class ProfileInfo implements Serializable {
@ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String")
private String no;
@ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String")
private String custNm;
@ApiModelProperty(example = "사업자번호", name = "사업자번호", dataType = "String")
private String bRegNo;
@ApiModelProperty(example = "발신프로필", name = "발신프로필", dataType = "String")
private String sendProfile;
@ApiModelProperty(example = "발신프로필 Key", name = "발신프로필 Key", dataType = "String")
private String sendProfileKey;
@ApiModelProperty(example = "상태", name = "상태", notes = "사용/휴면/삭제", dataType = "String")
private String stat;
@ApiModelProperty(example = "등록일", name = "등록일", notes = "YYYY-MM-DD", dataType = "String")
private String regDt;
}

View File

@@ -0,0 +1,29 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class ProfileListReqDto implements Serializable {
@ApiModelProperty(example = "상태", name = "상태", notes = "항목 : 전체(Default)/사용/미사용/휴면/삭제", dataType = "String")
private String searchType1;
@ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 고객사명/사업자번호(생년월일)/발신프로필", dataType = "String")
private String searchType2;
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", notes = "검색어(입력항목)", dataType = "String")
private String searchText1;
@NotNull
@ApiModelProperty(example = "페이지당 조회할 목록 수",notes = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "int")
private int pagePerRows;
@NotNull
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
private int page;
}

View File

@@ -0,0 +1,15 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class ProfileListRes implements Serializable{
private Paging paging;
private List<ProfileInfo> list;
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class ProfileListResDto extends ResponseMessage implements Serializable{
// 데이터.
private ProfileListRes data;
public ProfileListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public ProfileListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public ProfileListResDto(ApiResponseCode returnStr, ProfileListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,20 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendAdminInfo implements Serializable{
@ApiModelProperty(example = "관리자ID", name = "관리자ID", dataType = "String")
private String adminId;
@ApiModelProperty(example = "사업자번호", name = "사업자번호", dataType = "String")
private String bRegNo;
@ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String")
private String custNm;
}

View File

@@ -0,0 +1,14 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendAdminListReqDto implements Serializable{
@ApiModelProperty(example = "검색어", name = "검색어", dataType = "String")
private String searchText1;
}

View File

@@ -0,0 +1,13 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendAdminListRes implements Serializable{
List<SendAdminInfo> list;
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendAdminListResDto extends ResponseMessage implements Serializable{
// 데이터.
private SendAdminListRes data;
public SendAdminListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendAdminListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendAdminListResDto(ApiResponseCode returnStr, SendAdminListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -0,0 +1,16 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendNumber implements Serializable{
@ApiModelProperty(example = "발신번호명", name = "발신번호명", dataType = "String")
private String sendNm;
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String sendNum;
}

View File

@@ -0,0 +1,35 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendNumberInfo implements Serializable{
@ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String")
private String no;
@ApiModelProperty(example = "고객사명", name = "고객사명", notes = "고객사명( 개인: 이름)", dataType = "String")
private String custNm;
@ApiModelProperty(example = "관리자ID", name = "관리자ID", dataType = "String")
private String adminId;
@ApiModelProperty(example = "등록자ID", name = "등록자ID", dataType = "String")
private String register;
@ApiModelProperty(example = "사업자번호", name = "사업자번호", dataType = "String")
private String bRegNo;
@ApiModelProperty(example = "명의자 구분", name = "명의자 구분", dataType = "String")
private String nmineeDivCd;
@ApiModelProperty(example = "인앱채널 구분", name = "인앱채널 구분", dataType = "String")
private String inchDivCd;
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
private String regNo;
@ApiModelProperty(example = "승인상태", name = "승인상태", notes = "항목 : 01:승인대기/02:승인완료/03:반려", dataType = "String")
private String sttusCd;
@ApiModelProperty(example = "등록방법", name = "등록방법", notes = "항목 : 01:본인인증, 02:서류심사", dataType = "String")
private String regTpCd;
@ApiModelProperty(example = "등록일", name = "등록일", notes = "YYYY-MM-DD", dataType = "String")
private String regDt;
}

View File

@@ -0,0 +1,34 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendNumberListReqDto implements Serializable{
@ApiModelProperty(example = "승인상태", name = "승인상태", notes = "항목 : 전체(Defalut)/승인대기/승인완료/반려", dataType = "String")
private String searchType1;
@ApiModelProperty(example = "명의자 구분", name = "명의자 구분", notes = "항목 : 전체/사업자(본인, 대표, 임직원)/타사업자", dataType = "String")
private String searchType2;
@ApiModelProperty(example = "인입채널 구분", name = "인입채널 구분", notes = "항목 : 전체/홈페이지/어드민", dataType = "String")
private String searchType3;
@ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 사업자번호(생년월일), 발신번호, 고객사명(이름)", dataType = "String")
private String searchType4;
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", notes = "검색어(입력항목)", dataType = "String")
private String searchText1;
@NotNull
@ApiModelProperty(example = "페이지당 조회할 목록 수",notes = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "int")
private int pagePerRows;
@NotNull
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
private int page;
}

View File

@@ -0,0 +1,14 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import java.util.List;
import kr.co.uplus.ez.common.data.Paging;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendNumberListRes implements Serializable{
private Paging paging;
private List<SendNumberInfo> list;
}

View File

@@ -0,0 +1,31 @@
package kr.co.uplus.ez.api.sendNumMgt.dto;
import java.io.Serializable;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.ResponseMessage;
import lombok.Data;
@SuppressWarnings("serial")
@Data
public class SendNumberListResDto extends ResponseMessage implements Serializable{
// 데이터.
private SendNumberListRes data;
public SendNumberListResDto() {
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
}
public SendNumberListResDto(ApiResponseCode returnStr) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
}
public SendNumberListResDto(ApiResponseCode returnStr, SendNumberListRes data) {
this.retCode = returnStr.getResultCode();
this.retMsg = returnStr.getResultMsg();
this.data = data;
}
}

View File

@@ -5,19 +5,6 @@
*/
package kr.co.uplus.ez.api.servMgt;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@@ -25,6 +12,12 @@ import kr.co.uplus.ez.api.servMgt.dto.RejectRecvListReqDto;
import kr.co.uplus.ez.api.servMgt.dto.RejectRecvListResDto;
import kr.co.uplus.ez.common.components.ValidComponents;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@RestController
@@ -41,15 +34,15 @@ public class ServMgtController {
* date : 2022. 4. 25.
* auth : ckr
* desc : 080수신거부 목록 조회
* @param paramMap
* @param rejectRecvListReqDto
* @return
* @throws Exception
* @
*/
@ApiOperation(value = "rejectRecvList", notes = "080수신거부 목록 조회")
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
@RequestMapping(value = "rejectRecvList", method = { RequestMethod.POST })
@ResponseBody
public RejectRecvListResDto rejectRecvList(@RequestBody @Valid RejectRecvListReqDto rejectRecvListReqDto, BindingResult bindingResult) throws Exception{
public RejectRecvListResDto rejectRecvList(@RequestBody @Valid RejectRecvListReqDto rejectRecvListReqDto, BindingResult bindingResult) {
if (validComponents.validParameter(bindingResult)) {
return new RejectRecvListResDto(ApiResponseCode.CM_PARAMETER_ERROR);

View File

@@ -1,23 +1,20 @@
package kr.co.uplus.ez.api.servMgt;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.mybatis.spring.SqlSessionTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import kr.co.uplus.ez.api.servMgt.dto.RejectRecvInfo;
import kr.co.uplus.ez.api.servMgt.dto.RejectRecvListReqDto;
import kr.co.uplus.ez.api.servMgt.dto.RejectRecvListRes;
import kr.co.uplus.ez.api.servMgt.dto.RejectRecvListResDto;
import kr.co.uplus.ez.common.data.ApiResponseCode;
import kr.co.uplus.ez.common.data.Paging;
import org.mybatis.spring.SqlSessionTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class ServMgtService {
@@ -37,7 +34,7 @@ public class ServMgtService {
* date : 2022. 4. 25.
* auth : ckr
* desc : 080수신거부 목록 조회
* @param paramMap
* @param rejectRecvListReqDto
* @return
*/
public RejectRecvListResDto rejectRecvList(RejectRecvListReqDto rejectRecvListReqDto) {

Some files were not shown because too many files have changed in this diff Show More