diff --git a/build.gradle b/build.gradle index 2395961..dfac81d 100644 --- a/build.gradle +++ b/build.gradle @@ -103,6 +103,10 @@ dependencies { // mysql libs implementation 'mysql:mysql-connector-java' + // https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api + implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' + + } bootJar { diff --git a/frontend/src/assets/css/style.css b/frontend/src/assets/css/style.css index d93ce68..a9a1a2a 100644 --- a/frontend/src/assets/css/style.css +++ b/frontend/src/assets/css/style.css @@ -562,7 +562,7 @@ header .user_wrap .user_info .logout { .contents .input_box.cal input { display: inline-block; - width: 90%; + width: 70%; float: left; background: #fff url(../images/icon-calender.png) no-repeat right 6% center; } @@ -1373,6 +1373,12 @@ header .user_wrap .user_info .logout { .popup.price table th{ width:20%; + padding:0; + text-align: center; +} +.popup.price table td{ + padding: 0; + text-align: center; } .popup label{ diff --git a/frontend/src/modules/attractMgt/service/channelMgtApi.js b/frontend/src/modules/attractMgt/service/channelMgtApi.js index 9ed29e4..584781c 100644 --- a/frontend/src/modules/attractMgt/service/channelMgtApi.js +++ b/frontend/src/modules/attractMgt/service/channelMgtApi.js @@ -1,6 +1,6 @@ import httpClient from '@/common/http-client'; import channelExcelHeader from "@/modules/attractMgt/service/mock/channelExcelHeader.json"; - +import channelDetailExcelHeader from "@/modules/attractMgt/service/mock/channelDetailExcelHeader.json"; // 공통 코드. const getCommCode = (params) => { @@ -17,6 +17,11 @@ const channelDetail = (params) => { return httpClient.post('/api/v1/bo/attractMgt/channelDetail', params, { withCredentials: false}); } +// 발송건수 엑셀 다운로드 +const sendNumberListExcel = (params) => { + return httpClient.post('/api/v1/bo/attractMgt/sendNumberListExcel', params, { withCredentials: false}); +} + const getExcelHeader = category => { // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다. return new Promise(function(resolve, reject) { @@ -25,6 +30,9 @@ const getExcelHeader = category => { case 'CHANNEL': header = channelExcelHeader.header; break; + case 'CHANNELDETAIL': + header = channelDetailExcelHeader.header; + break; default: header = ''; break; @@ -38,4 +46,5 @@ export default { getExcelHeader, channelListExcel, channelDetail, + sendNumberListExcel, } diff --git a/frontend/src/modules/attractMgt/service/mock/channelDetailExcelHeader.json b/frontend/src/modules/attractMgt/service/mock/channelDetailExcelHeader.json new file mode 100644 index 0000000..dd7d04f --- /dev/null +++ b/frontend/src/modules/attractMgt/service/mock/channelDetailExcelHeader.json @@ -0,0 +1,37 @@ +{ + "header": [ + [ + { + "key": "sumYm", + "name": "날짜", + "rowspan": 2 + }, + { + "name": "채널별 발송건수", + "colspan": 5 + } + + ], + [{ + "key": "sndCnt", + "name": "전체" + }, + { + "key": "sndCntS", + "name": "SMS" + }, + { + "key": "sndCntL", + "name": "LMS" + }, + { + "key": "sndCntM", + "name": "MMS" + }, + { + "key": "sndCntA", + "name": "알림톡" + }] + ] + } + \ No newline at end of file diff --git a/frontend/src/modules/attractMgt/views/ChannelDetail.vue b/frontend/src/modules/attractMgt/views/ChannelDetail.vue index df7e6e4..e9724d2 100644 --- a/frontend/src/modules/attractMgt/views/ChannelDetail.vue +++ b/frontend/src/modules/attractMgt/views/ChannelDetail.vue @@ -22,36 +22,36 @@ 가입일 - + 상태 - + 고객사 - + 요금제 - + 대표자 - + 사용자 구분 - + 사업자등록번호
- - - + + +
법인등록번호
- - + +
@@ -59,9 +59,9 @@ 사업장 주소
- - - + + +
@@ -69,16 +69,16 @@ 유치자명
- - + +
관리자명
- - - + + +
@@ -91,12 +91,13 @@

( 최근 3년 사용 전월까지 확인 가능하며, 청구금액은 유큐브에서 확인 가능합니다. )

- +
- + +
@@ -121,49 +122,240 @@ - - - - - + + + + + + + + + + + + +
합계360,000360,000360,000360,0001,440,000{{sndCntTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{sndCntSTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{sndCntLTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{sndCntMTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{sndCntATotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}
{{option.sumYm}}{{option.sndCnt.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{option.sndCntS.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{option.sndCntL.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{option.sndCntM.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}{{option.sndCntA.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}}
+
- - + +
+ \ No newline at end of file diff --git a/frontend/src/modules/channelMgt/views/TmpltList.vue b/frontend/src/modules/channelMgt/views/TmpltList.vue index c4408df..83492f7 100644 --- a/frontend/src/modules/channelMgt/views/TmpltList.vue +++ b/frontend/src/modules/channelMgt/views/TmpltList.vue @@ -212,7 +212,7 @@ export default { noDataStr: '검색 결과가 없습니다.', params: { searchType1: '', - searchType2: '', + searchType2: 'custNm', searchText1: '' }, excelHeader: [] @@ -236,7 +236,7 @@ export default { perPage: 50, params: { searchType1: '', - searchType2: '', + searchType2: 'custNm', searchText1: ''} }); @@ -271,7 +271,7 @@ export default { perPage: this.perPageCnt, params: { searchType1: '', - searchType2: '', + searchType2: 'custNm', searchText1: '' } }); diff --git a/frontend/src/modules/custMgt/components/AdminNmPop.vue b/frontend/src/modules/custMgt/components/AdminNmPop.vue index e55f9cb..5c31e25 100644 --- a/frontend/src/modules/custMgt/components/AdminNmPop.vue +++ b/frontend/src/modules/custMgt/components/AdminNmPop.vue @@ -54,6 +54,9 @@ export default { agencyNm:"", idCheck: false, props: {}, + serviceId: '', + parentDiv: '', + serviceSeq:'', } }, components: { @@ -141,6 +144,44 @@ export default { this.formReset(); this.$refs.madangId.focus(); }, + async adminIdNmChangeOk(){ + // 관리자명 수정 api 호출 + var params = { + "adminId": this.madangId, + "adminNm": this.userNm, + "serviceId": this.serviceId + } + console.log(params); + try { + const response = await custMgtApi.updateAdminInfo(params); + const result = response.data; + console.log(result); + if (result != null && result.retCode == "0000") { + console.log('adminNm modal close'); + //alert('관리자정보 수정에 성공하였습니다.'); + // adminNm modal close + var dimmed = document.getElementsByClassName('modal26'); + for(var i = 0; i < dimmed.length; i++){ + dimmed[i].style.display = 'none'; + } + + if(this.parentDiv === 'subsDetail'){ + this.$parent.subsDetail(this.serviceId); + } else if(this.parentDiv === 'channelDetail'){ + this.$parent.channelDetail(this.serviceSeq); + } + + }else { + //alert('관리자정보 수정에 실패하였습니다.'); + this.formReset(); + this.$refs.madangId.focus(); + } + } catch(err) { + //alert("실패 하였습니다."); + this.formReset(); + this.$refs.madangId.focus(); + } + }, setAuthData() { // 권한 옵션. api.commAuth().then(response => { @@ -151,12 +192,16 @@ export default { Object.assign(this.$data, this.$options.data()); }, // 모달 띄우기 - ModalOpen(){ + ModalOpen(target){ + console.log(target); this.formReset(); var dimmed = document.getElementsByClassName('modal26'); for(var i = 0; i < dimmed.length; i++){ dimmed[i].style.display = 'block'; } + this.serviceId = target.serviceId; + this.serviceSeq = target.serviceSeq; + this.parentDiv = target.parentDiv; }, // 모달 끄기 ModalClose(){ diff --git a/frontend/src/modules/custMgt/components/CarryOverListPop.vue b/frontend/src/modules/custMgt/components/CarryOverListPop.vue index 2e5899e..224578e 100644 --- a/frontend/src/modules/custMgt/components/CarryOverListPop.vue +++ b/frontend/src/modules/custMgt/components/CarryOverListPop.vue @@ -26,12 +26,15 @@ - {{ option.date }} + {{ option.lmtYm }} {{ option.startAmount }} {{ option.useAmount }} {{ option.krrrAmount }} {{ option.extshAmount }} + + 검색 결과가 없습니다. + @@ -82,7 +85,7 @@ export default { console.log(result); if (result != null && result.retCode == "0000") { this.list = result.data.list; - this.totalCnt = result.data.totalCnt; + this.totalCnt = result.data.list.length; } } catch(err) { this.row.title = '청약고객관리'; diff --git a/frontend/src/modules/custMgt/components/SearchIdPopup.vue b/frontend/src/modules/custMgt/components/SearchIdPopup.vue index aa1b82c..d6b5088 100644 --- a/frontend/src/modules/custMgt/components/SearchIdPopup.vue +++ b/frontend/src/modules/custMgt/components/SearchIdPopup.vue @@ -85,6 +85,8 @@ export default { for(var i = 0; i < dimmed.length; i++){ dimmed[i].style.display = 'none'; } + + this.$parent.adminIdNmChangeOk(); }, // 성공 모달 끄기(cancel) searchIdModalCancelClose(){ diff --git a/frontend/src/modules/custMgt/views/MemberList.vue b/frontend/src/modules/custMgt/views/MemberList.vue index 3395f73..4e190b9 100644 --- a/frontend/src/modules/custMgt/views/MemberList.vue +++ b/frontend/src/modules/custMgt/views/MemberList.vue @@ -78,7 +78,7 @@
-
{{ totalItems }}건 +
{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}
- + +
@@ -292,6 +292,7 @@ export default { const result = response.data; console.log(result); if (result != null && result.retCode == "0000") { + //데이터값이 널이면 오류처리 this.custNm = result.data.custNm; this.reprNm = result.data.reprNm; this.custType = result.data.custType; @@ -333,6 +334,7 @@ export default { } }, + // updateAdminInfo 청약고객-사용정보-관리자ID,관리자명 수정 async updateAdminInfo() { this.row.serviceId = this.$route.params.serviceId; @@ -381,7 +383,12 @@ export default { } }, searchIDPopOpen: function(){ - this.$refs.adminNmPop.ModalOpen(); + var params = { + "serviceId": this.row.serviceId, + "serviceSeq": '', + "parentDiv": 'subsDetail' + } + this.$refs.adminNmPop.ModalOpen(params); }, goMemberDetail: function(props){ console.log(this.row); diff --git a/frontend/src/modules/custMgt/views/SubsList.vue b/frontend/src/modules/custMgt/views/SubsList.vue index 8a9bc4d..f12f131 100644 --- a/frontend/src/modules/custMgt/views/SubsList.vue +++ b/frontend/src/modules/custMgt/views/SubsList.vue @@ -42,7 +42,7 @@
- @@ -55,7 +55,7 @@
- @@ -70,7 +70,7 @@
- @@ -86,7 +86,7 @@
-
{{ totalItems }}건 +
{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}
- + +
- + + + + + + + + + + + +
ID사업자등록번호
{{ item.custNm }}{{ item.bregNo }}
- -
\ No newline at end of file diff --git a/frontend/src/modules/sendNumMgt/components/NumberDetailPop.vue b/frontend/src/modules/sendNumMgt/components/NumberDetailPop.vue index 6c1843a..9506798 100644 --- a/frontend/src/modules/sendNumMgt/components/NumberDetailPop.vue +++ b/frontend/src/modules/sendNumMgt/components/NumberDetailPop.vue @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/frontend/src/modules/sendNumMgt/service/mixins.js b/frontend/src/modules/sendNumMgt/service/mixins.js new file mode 100644 index 0000000..887f0a3 --- /dev/null +++ b/frontend/src/modules/sendNumMgt/service/mixins.js @@ -0,0 +1,353 @@ +import lodash from "lodash"; + +const utils_mixin = { + methods:{ + /** * 이메일 형식 체크 * * @param 데이터 */ + emailCheck(email,rtnArrYn) { + if(this.isNull(rtnArrYn)){ + rtnArrYn='N'; + } + // var regExp = /(^[A-Za-z0-9_\.\-]+)@([A-Za-z0-9\-]+\.[A-Za-z0-9\-]+)/; + var regExp = /^([0-9a-zA-Z_\.\-]([-_.]?[0-9a-zA-Z_\.\-])*)@([0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$)/i;//이메일 정규식 + + if(regExp.test(email) == false) { + // 이메일 형식이 알파벳+숫자@알파벳+숫자.알파벳+숫자 형식이 아닐경우 + if(rtnArrYn == 'Y'){ + return email; + } + return false; + }else{ + var myArray = regExp.exec(email); + if(rtnArrYn == 'Y'){ + return myArray; + } + return true; + } + + }, + /** * 전화번호 포맷으로 변환 * * @param 데이터 */ + formatPhone(phoneNum,fmt,rtnArrYn) { + if(this.isNull(fmt)){ + fmt=''; + } + if(this.isNull(rtnArrYn)){ + fmt='N'; + } + if(this.isPhone(phoneNum)) { + var rtnNum; + var regExp =/(02)([0-9]{3,4})([0-9]{4})$/; + var myArray; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + rtnNum = myArray[1]+fmt + myArray[2]+fmt+myArray[3]; + if(rtnArrYn == 'Y'){ + return myArray; + } + return rtnNum; + } else { + regExp =/(0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + rtnNum = myArray[1]+fmt+myArray[2]+fmt+myArray[3]; + if(rtnArrYn == 'Y'){ + return myArray; + } + return rtnNum; + } else { + return phoneNum; + } + } + } else { + return phoneNum; + } + }, + /** * 핸드폰번호 포맷으로 변환 * * @param 데이터 */ + formatMobile(phoneNum,fmt,rtnArrYn) { + + if(this.isNull(fmt)){ + fmt=''; + } + if(this.isNull(rtnArrYn)){ + fmt='N'; + } + if(this.isMobile(phoneNum)) { + + var rtnNum; + var regExp =/(01[016789])([0-9]{3,4})([0-9]{4})$/; + var myArray; + + if(regExp.test(phoneNum)){ + + myArray = regExp.exec(phoneNum); + rtnNum = myArray[1]+fmt+myArray[2]+fmt+myArray[3]; + if(rtnArrYn == 'Y'){ + return myArray; + } + return rtnNum; + } else { + return phoneNum; + } + } else { + return phoneNum; + } + }, + + /** * 전화번호 형식 체크 * * @param 데이터 */ + isPhone(phoneNum) { + var regExp =/(02)([0-9]{3,4})([0-9]{4})$/; + if(regExp.test(phoneNum)){ + return true; + } else { + regExp =/(0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/; + if(regExp.test(phoneNum)){ + return true; + } else { + return false; + } + } + }, + + /** * 핸드폰번호 형식 체크 * * @param 데이터 */ + isMobile(phoneNum) { + var regExp =/(01[016789])([0-9]{3,4})([0-9]{4})$/; + var myArray; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + return true; + } else { + return false; + } + }, + isMobile2(phoneNum) { + var regExp =/(1[016789])([0-9]{3,4})([0-9]{4})$/; + var myArray; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + return true; + } else { + return false; + } + }, + + isNull(obj){ + if(lodash.isNil(obj) || lodash.trim(obj) == ''){ + return true; + } + return false; + }, + getParent(name){ + let p = this.$parent; + while(typeof p !== 'undefined'){ + if(p.$options.name == name) { + return p; + }else { + p = p.$parent; + } + } + return false; + }, + getJsonObj(str){ + return JSON.parse(JSON.stringify(str)); + }, + } + }; + + var chkPattern2 = { + data: function () { + return { + } + }, + methods: { + selSesStorage(keyLike){ + if(this.isNull(keyLike)){ + return null; + } + if(sessionStorage.length > 0){ + let keyList = []; + for(let i=0;i -1){ + keyList.push({name : keyNm, value : sessionStorage.getItem(keyNm)}); + } + } + if(keyList.length > 0){ + return keyList; + } + return null; + } + return null; + }, + + delSesStorage(keyList){ + if(this.isNull(keyList)){ + return null; + } + if(keyList.length > 0){ + keyList.map((o) => (sessionStorage.removeItem(o.name))); + return true; + } + }, + + setGridMouseDownActive(){ + const ele = document.querySelector(`div.tui-grid-container.tui-grid-show-lside-area`); + if(window.getEventListeners(ele).mousedown){ + ele.removeEventListener('mousedown',window.getEventListeners(ele).mousedown[0].listener); + } + }, + restrictChars : function($event,regExp,hanYn){ + + if(this.isNull(hanYn)){ + hanYn='N'; + } + if(hanYn === 'N' && $event.type === 'keydown'){ + if($event.keyCode === 229){ + $event.preventDefault(); + return false; + } + } + + if($event.type === 'keypress'){ + //한글 처리 불가 + if(regExp.test(String.fromCharCode($event.charCode))) { + return true; + }else{ + $event.preventDefault(); + return false; + } + } + + if(hanYn === 'N' && ( $event.type === 'keyup' || $event.type === 'input' || $event.type === 'change' || $event.type === 'blur')){ + $event.target.value = $event.target.value.replace(/[ㄱ-ㅎㅏ-ㅣ가-힣]/g,''); + $event.preventDefault(); + return false; + } + return true; + }, + setLenth: function (e, len) { + this.cut(e, len); + }, + onlyCustom: function (e,strRegExp,hanYn) { + var regExp_g = new RegExp(strRegExp,'g'); + this.cut(e); + return this.restrictChars(e,regExp_g,hanYn); + }, + onlyCommon: function(strRegExp, e, len, isEventCall, hanYn) { + var regExp_g = new RegExp(strRegExp,'g'); + if(isEventCall === 'N'){ + if(!this.cut(e, len, isEventCall)){ + return false; + } + if(!regExp_g.test(e.value)){ + return false; + } + return true; + } + this.cut(e, len); + return this.restrictChars(e,regExp_g,hanYn); + }, + onlyNum: function (e, len, isEventCall) { + var strRegExp = '^[0-9]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyEng: function (e, len, isEventCall) { + var strRegExp = '^[A-Za-z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyLowerEng: function (e, len, isEventCall) { + var strRegExp = '^[a-z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyUpperEng: function (e, len, isEventCall) { + var strRegExp = '^[A-Z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyEmail: function (e, len, isEventCall) { + var strRegExp = '^[a-zA-Z0-9_\.\-@._-]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyName: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyTitle: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyText: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9_-]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyPassword: function (e, len, isEventCall) { + var strRegExp = '^[A-Za-z0-9!@#$%^&*]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyId: function (e, len, isEventCall) { + var strRegExp = '^[A-Za-z0-9_\.\-]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyIp: function (e, len, isEventCall) { + var strRegExp = '^[0-9,.*]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyRoleNm_Space: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyRoleId_UnderBar: function (e, len, isEventCall) { + var strRegExp = '^[a-zA-Z0-9_]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + cut: function (ele, len, isValidChk) { + let e=ele; + if (typeof ele.target != "undefined") { + e=ele.target; + } + let max = this.isNull(len) ? e.attributes.maxlength.value : len; + let str = e.value; + + if (this.bytes(str) > max) { + if(this.isNull(isValidChk)){ + e.value = this.cutBytes(str, max); + } + return false; + } + return true; + }, + cutBytes: function (str, len) { + while(1 === 1){ + if(this.bytes(str) <= len){ + return str; + } + str = str.slice(0,-1); + } + }, + bytes: function (str) { + var length = ((s,b,i,c) => { + // for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1); // 한글 3바이트 + // for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?2:c>>7?1:1); //한글 2바이트 + b=0,i=0; + while(1 === 1){ + c = s.charCodeAt(i++); + if (isNaN(c)) { + break; + } + b += c >> 11 ? 2 : c >> 7 ? 1 : 1; + } + return b + })(str); + return length; + }, + checkPhone: function(str) { + str = str.replace(/[-\s]+/g, ''); + if (str.charAt(0)!="0"){ + str = "0"+str; + } + if (str.length<10||str.length>12){return "";} + if (isNaN(str)){return ""; } + if (str.substr(0,2)!="01" && str.substr(0,3)!="070" && str.substr(0,4)!="0505" && str.substr(0,4)!="0503"){return ""; } + return str; + + }, + } + }; + export { utils_mixin, chkPattern2 }; \ No newline at end of file diff --git a/frontend/src/modules/sendNumMgt/service/sendNumMgtApi.js b/frontend/src/modules/sendNumMgt/service/sendNumMgtApi.js index d8f2a67..05a2b75 100644 --- a/frontend/src/modules/sendNumMgt/service/sendNumMgtApi.js +++ b/frontend/src/modules/sendNumMgt/service/sendNumMgtApi.js @@ -5,17 +5,59 @@ const getCommCode = (params) => { return httpClient.post('/api/v1/bo/comm/getCode', params, { withCredentials: false }); } +const adminList = (params) => { + return httpClient.post('/api/v1/bo/sendNumMgt/adminList', params, {withCredentials: false}); +} + +const numberDetail = (params) => { + return httpClient.post('/api/v1/bo/sendNumMgt/numberDetail', params, {withCredentials: false}); +} + +const apprDetail = (params) => { + return httpClient.post('/api/v1/bo/sendNumMgt/apprDetail', params, {withCredentials: false}); +} + // 사업자가 등록 요청. -const insertNumber1 = (tenureFile, businessFile, communicationFile, adminId, custNm, bRegNo, nmineeDivCd, numberInputs) => { +const insertNumber = (adminId, custNm, bRegNo, nmineeDivCd, numberInputs, bizrAuthYn, custSeq) => { + let formData = new FormData(); + const row = {} + row.adminId = adminId + row.custNm = custNm + row.bRegNo = bRegNo + row.list = numberInputs + row.bizrAuthYn = bizrAuthYn + row.custSeq = custSeq + + console.log(row) + formData.append('key', new Blob([ JSON.stringify(row) ], {type : "application/json"})); + + let url = "/api/v1/bo/sendNumMgt/insertNumber"; + return httpClient.post(url, formData, { + headers: { + "Content-Type": "multipart/form-data", + "Show-Layer": "Yes" + } + }); +}; + +// 사업자가 등록 요청. +const insertNumber1 = (tenureFile, businessFile, communicationFile, adminId, custNm, bRegNo, nmineeDivCd, numberInputs, bizrAuthYn, custSeq) => { let formData = new FormData(); formData.append("tenureFile", tenureFile); formData.append("businessFile", businessFile); - formData.append("communicationFile", communicationFile); - formData.append("adminId", adminId); - formData.append("custNm", custNm); - formData.append("bRegNo", bRegNo); - formData.append("nmineeDivCd", nmineeDivCd); - formData.append("numberInputs", numberInputs); + formData.append("communicationFile", communicationFile); + + const row = {} + row.adminId = adminId + row.custNm = custNm + row.bRegNo = bRegNo + row.nmineeDivCd = nmineeDivCd + row.list = numberInputs + row.bizrAuthYn = bizrAuthYn + row.custSeq = custSeq + + console.log(row) + formData.append('key', new Blob([ JSON.stringify(row) ], {type : "application/json"})); let url = "/api/v1/bo/sendNumMgt/insertNumber"; return httpClient.post(url, formData, { @@ -27,18 +69,27 @@ const insertNumber1 = (tenureFile, businessFile, communicationFile, adminId, cus }; // 타사업자가 등록 요청. -const insertNumber2 = (trustFile, warrantFile, deputyFile, tenureFile, businessFile, adminId, custNm, bRegNo, nmineeDivCd, numberInputs) => { +const insertNumber2 = (trustFile, warrantFile, deputyFile, tenureFile, otherBusinessFile, businessFile, adminId, custNm, bRegNo, nmineeDivCd, numberInputs, bizrAuthYn, custSeq) => { let formData = new FormData(); formData.append("trustFile", trustFile); formData.append("warrantFile", warrantFile); formData.append("deputyFile", deputyFile); formData.append("tenureFile", tenureFile); formData.append("businessFile", businessFile); - formData.append("adminId", adminId); - formData.append("custNm", custNm); - formData.append("bRegNo", bRegNo); - formData.append("nmineeDivCd", nmineeDivCd); - formData.append("numberInputs", numberInputs); + formData.append("otherBusinessFile", otherBusinessFile); + + const row = {} + row.adminId = adminId + row.custNm = custNm + row.bRegNo = bRegNo + row.nmineeDivCd = nmineeDivCd + row.numberInputs = numberInputs + row.bizrAuthYn = bizrAuthYn + row.custSeq = custSeq + + console.log(row) + + formData.append('key', new Blob([ JSON.stringify(row) ], {type : "application/json"})); let url = "/api/v1/bo/sendNumMgt/insertNumber"; return httpClient.post(url, formData, { @@ -49,8 +100,17 @@ const insertNumber2 = (trustFile, warrantFile, deputyFile, tenureFile, businessF }); }; +const updateAppr = (params) => { + return httpClient.post('/api/v1/bo/sendNumMgt/updateAppr', params, {withCredentials: false}); +} + export default { getCommCode, + numberDetail, + adminList, + insertNumber, insertNumber1, insertNumber2, + apprDetail, + updateAppr, } diff --git a/frontend/src/modules/sendNumMgt/service/utils_mixin.js b/frontend/src/modules/sendNumMgt/service/utils_mixin.js new file mode 100644 index 0000000..cf6b7cf --- /dev/null +++ b/frontend/src/modules/sendNumMgt/service/utils_mixin.js @@ -0,0 +1,373 @@ +import lodash from "lodash"; +import moment from "moment"; +import '@/modules/mgt/components/eventlisteners.js'; + +const filter_mixin = { + filters: { + _yyyy_mm_dd(val){ + if(lodash.isNil(val) || lodash.trim(val) == '') return ''; + const orgin = val; + if(orgin.length < 8) { + return orgin; + } + if(!Number(orgin)) return orgin; + const date = orgin.substring(0,8); + if(moment(date).isValid()){ + return moment(date).format('YYYY[-]MM[-]DD'); + } + return orgin; + } + }, +} + +const utils_mixin = { + methods:{ + /** * 이메일 형식 체크 * * @param 데이터 */ + emailCheck(email,rtnArrYn) { + if(this.isNull(rtnArrYn)){ + rtnArrYn='N'; + } + // var regExp = /(^[A-Za-z0-9_\.\-]+)@([A-Za-z0-9\-]+\.[A-Za-z0-9\-]+)/; + var regExp = /^([0-9a-zA-Z_\.\-]([-_.]?[0-9a-zA-Z_\.\-])*)@([0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$)/i;//이메일 정규식 + + if(regExp.test(email) == false) { + // 이메일 형식이 알파벳+숫자@알파벳+숫자.알파벳+숫자 형식이 아닐경우 + if(rtnArrYn == 'Y'){ + return email; + } + return false; + }else{ + var myArray = regExp.exec(email); + if(rtnArrYn == 'Y'){ + return myArray; + } + return true; + } + + }, + /** * 전화번호 포맷으로 변환 * * @param 데이터 */ + formatPhone(phoneNum,fmt,rtnArrYn) { + if(this.isNull(fmt)){ + fmt=''; + } + if(this.isNull(rtnArrYn)){ + fmt='N'; + } + if(this.isPhone(phoneNum)) { + var rtnNum; + var regExp =/(02)([0-9]{3,4})([0-9]{4})$/; + var myArray; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + rtnNum = myArray[1]+fmt + myArray[2]+fmt+myArray[3]; + if(rtnArrYn == 'Y'){ + return myArray; + } + return rtnNum; + } else { + regExp =/(0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + rtnNum = myArray[1]+fmt+myArray[2]+fmt+myArray[3]; + if(rtnArrYn == 'Y'){ + return myArray; + } + return rtnNum; + } else { + return phoneNum; + } + } + } else { + return phoneNum; + } + }, + /** * 핸드폰번호 포맷으로 변환 * * @param 데이터 */ + formatMobile(phoneNum,fmt,rtnArrYn) { + + if(this.isNull(fmt)){ + fmt=''; + } + if(this.isNull(rtnArrYn)){ + fmt='N'; + } + if(this.isMobile(phoneNum)) { + + var rtnNum; + var regExp =/(01[016789])([0-9]{3,4})([0-9]{4})$/; + var myArray; + + if(regExp.test(phoneNum)){ + + myArray = regExp.exec(phoneNum); + rtnNum = myArray[1]+fmt+myArray[2]+fmt+myArray[3]; + if(rtnArrYn == 'Y'){ + return myArray; + } + return rtnNum; + } else { + return phoneNum; + } + } else { + return phoneNum; + } + }, + + /** * 전화번호 형식 체크 * * @param 데이터 */ + isPhone(phoneNum) { + var regExp =/(02)([0-9]{3,4})([0-9]{4})$/; + if(regExp.test(phoneNum)){ + return true; + } else { + regExp =/(0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/; + if(regExp.test(phoneNum)){ + return true; + } else { + return false; + } + } + }, + + /** * 핸드폰번호 형식 체크 * * @param 데이터 */ + isMobile(phoneNum) { + var regExp =/(01[016789])([0-9]{3,4})([0-9]{4})$/; + var myArray; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + return true; + } else { + return false; + } + }, + isMobile2(phoneNum) { + var regExp =/(1[016789])([0-9]{3,4})([0-9]{4})$/; + var myArray; + if(regExp.test(phoneNum)){ + myArray = regExp.exec(phoneNum); + return true; + } else { + return false; + } + }, + + isNull(obj){ + if(lodash.isNil(obj) || lodash.trim(obj) == ''){ + return true; + } + return false; + }, + getParent(name){ + let p = this.$parent; + while(typeof p !== 'undefined'){ + if(p.$options.name == name) { + return p; + }else { + p = p.$parent; + } + } + return false; + }, + getJsonObj(str){ + return JSON.parse(JSON.stringify(str)); + }, + } +}; + +var chkPattern2 = { + data: function () { + return { + } + }, + methods: { + selSesStorage(keyLike){ + if(this.isNull(keyLike)){ + return null; + } + if(sessionStorage.length > 0){ + let keyList = []; + for(let i=0;i -1){ + keyList.push({name : keyNm, value : sessionStorage.getItem(keyNm)}); + } + } + if(keyList.length > 0){ + return keyList; + } + return null; + } + return null; + }, + + delSesStorage(keyList){ + if(this.isNull(keyList)){ + return null; + } + if(keyList.length > 0){ + keyList.map((o) => (sessionStorage.removeItem(o.name))); + return true; + } + }, + + setGridMouseDownActive(){ + const ele = document.querySelector(`div.tui-grid-container.tui-grid-show-lside-area`); + if(window.getEventListeners(ele).mousedown){ + ele.removeEventListener('mousedown',window.getEventListeners(ele).mousedown[0].listener); + } + }, + restrictChars : function($event,regExp,hanYn){ + + if(this.isNull(hanYn)){ + hanYn='N'; + } + if(hanYn === 'N' && $event.type === 'keydown'){ + if($event.keyCode === 229){ + $event.preventDefault(); + return false; + } + } + + if($event.type === 'keypress'){ + //한글 처리 불가 + if(regExp.test(String.fromCharCode($event.charCode))) { + return true; + }else{ + $event.preventDefault(); + return false; + } + } + + if(hanYn === 'N' && ( $event.type === 'keyup' || $event.type === 'input' || $event.type === 'change' || $event.type === 'blur')){ + $event.target.value = $event.target.value.replace(/[ㄱ-ㅎㅏ-ㅣ가-힣]/g,''); + $event.preventDefault(); + return false; + } + return true; + }, + setLenth: function (e, len) { + this.cut(e, len); + }, + onlyCustom: function (e,strRegExp,hanYn) { + var regExp_g = new RegExp(strRegExp,'g'); + this.cut(e); + return this.restrictChars(e,regExp_g,hanYn); + }, + onlyCommon: function(strRegExp, e, len, isEventCall, hanYn) { + var regExp_g = new RegExp(strRegExp,'g'); + if(isEventCall === 'N'){ + if(!this.cut(e, len, isEventCall)){ + return false; + } + if(!regExp_g.test(e.value)){ + return false; + } + return true; + } + this.cut(e, len); + return this.restrictChars(e,regExp_g,hanYn); + }, + onlyNum: function (e, len, isEventCall) { + var strRegExp = '^[0-9]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyEng: function (e, len, isEventCall) { + var strRegExp = '^[A-Za-z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyLowerEng: function (e, len, isEventCall) { + var strRegExp = '^[a-z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyUpperEng: function (e, len, isEventCall) { + var strRegExp = '^[A-Z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyEmail: function (e, len, isEventCall) { + var strRegExp = '^[a-zA-Z0-9_\.\-@._-]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyName: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyTitle: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyText: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9_-]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyPassword: function (e, len, isEventCall) { + var strRegExp = '^[A-Za-z0-9!@#$%^&*]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyId: function (e, len, isEventCall) { + var strRegExp = '^[A-Za-z0-9_\.\-]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyIp: function (e, len, isEventCall) { + var strRegExp = '^[0-9,.*]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + onlyRoleNm_Space: function (e, len, isEventCall) { + var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall,'Y'); + }, + onlyRoleId_UnderBar: function (e, len, isEventCall) { + var strRegExp = '^[a-zA-Z0-9_]*$'; + return this.onlyCommon(strRegExp, e, len, isEventCall); + }, + cut: function (ele, len, isValidChk) { + let e=ele; + if (typeof ele.target != "undefined") { + e=ele.target; + } + let max = this.isNull(len) ? e.attributes.maxlength.value : len; + let str = e.value; + + if (this.bytes(str) > max) { + if(this.isNull(isValidChk)){ + e.value = this.cutBytes(str, max); + } + return false; + } + return true; + }, + cutBytes: function (str, len) { + while(1 === 1){ + if(this.bytes(str) <= len){ + return str; + } + str = str.slice(0,-1); + } + }, + bytes: function (str) { + var length = ((s,b,i,c) => { + // for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1); // 한글 3바이트 + // for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?2:c>>7?1:1); //한글 2바이트 + b=0,i=0; + while(1 === 1){ + c = s.charCodeAt(i++); + if (isNaN(c)) { + break; + } + b += c >> 11 ? 2 : c >> 7 ? 1 : 1; + } + return b + })(str); + return length; + }, + checkPhone: function(str) { + str = str.replace(/[-\s]+/g, ''); + if (str.charAt(0)!="0"){ + str = "0"+str; + } + if (str.length<10||str.length>12){return "";} + if (isNaN(str)){return ""; } + if (str.substr(0,2)!="01" && str.substr(0,3)!="070" && str.substr(0,4)!="0505" && str.substr(0,4)!="0503"){return ""; } + return str; + + }, + } +}; +export { utils_mixin, chkPattern2, filter_mixin }; \ No newline at end of file diff --git a/frontend/src/modules/sendNumMgt/views/ApprList.vue b/frontend/src/modules/sendNumMgt/views/ApprList.vue index 327d024..96787ef 100644 --- a/frontend/src/modules/sendNumMgt/views/ApprList.vue +++ b/frontend/src/modules/sendNumMgt/views/ApprList.vue @@ -11,37 +11,37 @@
- + + +
- +
- + + +
- +
- +
-
100건 +
{{ totalItems }}
- @@ -50,254 +50,193 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NO요청일관리자ID사업자번호명의자 구분고객사명요청건수승인건수반려건수상태완료일
102022-03-10uplus01229-81-39938사업자유플러스300승인대기-
92022-03-10uplus01229-81-39938사업자유플러스321처리완료2022-03-10
82022-03-10uplus01229-81-39938사업자유플러스321처리완료2022-03-10
72022-03-10uplus01229-81-39938사업자유플러스321처리완료2022-03-10
62022-03-10uplus01229-81-39938타사업자유플러스321처리완료2022-03-10
52022-03-10uplus01229-81-39938사업자유플러스321처리완료2022-03-10
42022-03-10uplus01229-81-39938타사업자유플러스300승인대기-
32022-03-10uplus01229-81-39938타사업자유플러스300승인대기-
22022-03-10uplus01229-81-39938타사업자유플러스300승인대기-
12022-03-10uplus01229-81-39938타사업자유플러스300승인대기-
-
- + + +
\ No newline at end of file diff --git a/frontend/src/modules/sendNumMgt/views/NumberList.vue b/frontend/src/modules/sendNumMgt/views/NumberList.vue index 34a49d3..8050cbd 100644 --- a/frontend/src/modules/sendNumMgt/views/NumberList.vue +++ b/frontend/src/modules/sendNumMgt/views/NumberList.vue @@ -69,7 +69,7 @@
- +
@@ -159,6 +159,8 @@ export default { columns: [ { name: 'no', header: 'NO', align: 'center', width: '5%' }, + { name: 'regReqNo', hidden: true}, + { name: 'bizrAuthYn', hidden: true}, { name: 'custNm', header: '고객사명', align: 'center', width: '5%' }, { name: 'adminId', header: '관리자ID', align: 'center', width: '10%' }, { name: 'register', header: '등록자ID', align: 'center', width: '10%' }, @@ -262,6 +264,12 @@ export default { console.log(props) this.$refs.numberDetailPop.numberDetailPopOpen(props); }, + commonModalOpen(row){ + this.$refs.commmonModal.alertModalOpen(row); + }, + numberDelete(){ + + } }, // beforeRouteLeave(to, from, next) { // diff --git a/frontend/src/modules/servMgt/views/rejectRecvList.vue b/frontend/src/modules/servMgt/views/rejectRecvList.vue index 1dcd152..54df3c0 100644 --- a/frontend/src/modules/servMgt/views/rejectRecvList.vue +++ b/frontend/src/modules/servMgt/views/rejectRecvList.vue @@ -31,7 +31,7 @@
-
{{ totalItems }}건 +
{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}
@@ -135,19 +138,29 @@ - SELECT - T1.* - FROM - ( - SELECT - ecm.SUM_YM + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/calculate/calculate-mapper.xml b/src/main/resources/mapper/mysql/calculate/calculate-mapper.xml index 9205636..4b8f17b 100644 --- a/src/main/resources/mapper/mysql/calculate/calculate-mapper.xml +++ b/src/main/resources/mapper/mysql/calculate/calculate-mapper.xml @@ -3,5 +3,107 @@ + + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 269fdf0..40fca27 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -357,20 +357,24 @@ @@ -732,8 +736,9 @@ SELECT USER_ID from ${HUBEZ_COMMON}.EZ_SVC_USER WHERE USER_ID = #{adminId} - + + /* custMgt-mapper.xml(updateAdminInfoTotal) */ UPDATE ${HUBEZ_COMMON}.EZ_SVC_USER SET CHG_ID = #{userId} @@ -746,7 +751,7 @@ WHERE USER_ID = #{userId} - + /* custMgt-mapper.xml(insertMemo) */ INSERT INTO ${HUBEZ_COMMON}.EZ_USER_MEMO( @@ -766,9 +771,9 @@ , #{userId} , NOW() FROM ${HUBEZ_COMMON}.EZ_SVC_USER esu - WHERE esu.USER_ID = #{userId} + WHERE esu.USER_ID = #{userId} - + - + UPDATE ${HUBEZ_ADMIN}.EZ_USER_LMT SET diff --git a/src/main/resources/mapper/mysql/login/login-mapper.xml b/src/main/resources/mapper/mysql/login/login-mapper.xml index d106321..dbdd78e 100644 --- a/src/main/resources/mapper/mysql/login/login-mapper.xml +++ b/src/main/resources/mapper/mysql/login/login-mapper.xml @@ -78,6 +78,7 @@ , T1.STTUS_CD , T1.HP_NO , T1.AUTHCHR_FAIL_CNT + , T1.LOGIN_FAIL_CNT , CASE WHEN DATE_ADD(T1.PWD_CHG_DT, INTERVAL 90 DAY) NOW() THEN 'Y' ELSE 'N' diff --git a/src/main/resources/mapper/mysql/mntrng/mntrng-mapper.xml b/src/main/resources/mapper/mysql/mntrng/mntrng-mapper.xml index 547b902..18b0e03 100644 --- a/src/main/resources/mapper/mysql/mntrng/mntrng-mapper.xml +++ b/src/main/resources/mapper/mysql/mntrng/mntrng-mapper.xml @@ -3,5 +3,157 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml b/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml index b2055dc..2e0fe58 100644 --- a/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml @@ -93,16 +93,13 @@ SELECT COUNT(*) FROM - hubez_common.EZ_CUST_INFO eci + hubez_common.EZ_CUST_INFO eci INNER JOIN hubez_common.EZ_SVC_USER esu ON - eci.CUST_SEQ = esu.CUST_SEQ - INNER JOIN hubez_common.EZ_SNDRNO_REG esr + eci.CUST_SEQ = esu.CUST_SEQ + INNER JOIN hubez_common.EZ_SVC_SNDRNO ess ON - esu.USER_SEQ = esr.USER_SEQ - LEFT JOIN hubez_common.EZ_SVC_SNDRNO ess - ON - eci.CUST_SEQ = ess.CUST_SEQ + eci.CUST_SEQ = ess.CUST_SEQ WHERE 1=1 @@ -121,7 +118,7 @@ , esu.USER_ID AS adminId , ess.REG_ID AS register , eci.BIZRNO AS bRegNo - , esr.REG_REQ_NO + , ess.REG_REQ_NO ,( SELECT ecd.DTL_CD_NM @@ -160,14 +157,12 @@ INNER JOIN hubez_common.EZ_SVC_USER esu ON eci.CUST_SEQ = esu.CUST_SEQ - INNER JOIN hubez_common.EZ_SNDRNO_REG esr - ON - esu.USER_SEQ = esr.USER_SEQ - LEFT JOIN hubez_common.EZ_SVC_SNDRNO ess + INNER JOIN hubez_common.EZ_SVC_SNDRNO ess ON eci.CUST_SEQ = ess.CUST_SEQ WHERE 1=1 + ORDER BY ess.REG_DT DESC LIMIT #{page}, #{pagePerRows}) A, ( SELECT @ROWNUM := #{page} ) AS R @@ -218,7 +213,9 @@ SELECT esu.USER_ID AS adminId, eci.BIZRNO AS bRegNo, - eci.CUST_NM AS custNm + eci.CUST_NM AS custNm, + esu.BIZR_AUTH_YN, + eci.CUST_SEQ FROM ${HUBEZ_COMMON}.EZ_SVC_USER esu, ${HUBEZ_COMMON}.EZ_CUST_INFO eci WHERE @@ -249,14 +246,30 @@ AND ess.SNDRNO = #{regNo} + + + + /* sendNumMgt-mapper.xml(insertNumber) */ - - SELECT CONCAT(DATE_FORMAT(NOW(), '%Y%m'), LPAD(${HUBEZ_COMMON}.FUN_NEXT_SEQ('SNDRNO_REG_SEQ'), 7, '0')) AS REG_REQ_NO - INSERT INTO ${HUBEZ_COMMON}.EZ_SNDRNO_REG ( - REQ_STTUS_CD + REG_REQ_NO + ,REQ_STTUS_CD ,REQ_CNT ,APV_CNT ,REJT_CNT @@ -268,15 +281,16 @@ ,CHG_DT ) VALUES( - '01' + #{regReqNo} + ,'01' ,#{reqCnt} ,0 ,0 ,NOW() ,#{userSeq} - ,#{madangId} + ,#{adminId} ,NOW() - ,#{madangId} + ,#{adminId} ,NOW() ) @@ -310,7 +324,44 @@ ) - + + INSERT INTO + ${HUBEZ_COMMON}.EZ_SVC_SNDRNO( + SNDRNO + ,REG_TP_CD + ,SNDRNO_NM + ,CUST_SEQ + ,REG_REQ_NO + ,STTUS_CD + ,USE_YN + ,NMINEE_DIV_CD + ,INCH_DIV_CD + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + ) + VALUES + + #{item.sendNum} + ,'02' + ,#{item.sendNm} + ,#{custSeq} + ,#{regReqNo} + ,'01' + ,'Y' + ,#{nmineeDivCd} + ,#{inchDivCd} + ,#{regId} + ,NOW() + ,#{regId} + ,NOW() + + + + + + /* sendNumMgt-mapper.xml(insertNumberList) */ INSERT INTO ${HUBEZ_COMMON}.EZ_SVC_SNDRNO( @@ -419,4 +470,194 @@ WHERE REG_REQ_NO = #{regReqNo} + + + + + + + + AND esr.REQ_STTUS_CD = #{searchType1} + + + AND ess.NMINEE_DIV_CD = #{searchType2} + + + AND eci.BIZRNO = #{searchText1} + + + AND eci.CUST_NM = #{searchText2} + + + + + + + + + + + /* sendNumMgt-mapper.xml(updateSndrno) */ + UPDATE + hubez_common.EZ_SVC_SNDRNO + SET + CHG_ID = #{adminId} + , CHG_DT = NOW() + , STTUS_CD = #{sttusCd} + WHERE SEQ_NO = #{seqNo} + AND SNDRNO = #{sndrno} + + + + /* sendNumMgt-mapper.xml(upddateSndrnoReg) */ + UPDATE + hubez_common.EZ_SNDRNO_REG + SET + CHG_ID = #{adminId} + , CHG_DT = NOW() + , MEMO = #{memo} + , APV_CNT = #{apvCnt} + , REJT_CNT = #{rejtCnt} + + , CMPLT_DT = NOW() + + + , REQ_STTUS_CD = #{reqSttusCd} + + WHERE REG_REQ_NO = #{regReqNo} + + + + /* sendNumMgt-mapper.xml(updateSvcUser) */ + UPDATE + hubez_common.EZ_SVC_USER + SET + BIZR_AUTH_YN = 'Y' + , CHG_ID = #{adminId} + , CHG_DT = NOW() + WHERE + USER_ID = #{adminId} + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/stats/stats-mapper.xml b/src/main/resources/mapper/mysql/stats/stats-mapper.xml index 7e95b9b..95229ec 100644 --- a/src/main/resources/mapper/mysql/stats/stats-mapper.xml +++ b/src/main/resources/mapper/mysql/stats/stats-mapper.xml @@ -31,7 +31,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') ) ecm1, ( SELECT @@ -41,7 +41,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'SMS' ) S1, ( @@ -52,7 +52,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'LMS' ) L1, ( @@ -63,7 +63,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'MMS' ) M1, ( @@ -74,7 +74,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' ) A1 UNION ALL @@ -104,7 +104,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') GROUP BY SUM_YM ) ecm, (SELECT SUM_YM @@ -114,7 +114,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'SMS' GROUP BY SUM_YM ) S, (SELECT @@ -125,7 +125,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'LMS' GROUP BY SUM_YM ) L, ( SELECT @@ -136,7 +136,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'MMS' GROUP BY SUM_YM ) M, ( SELECT @@ -147,7 +147,7 @@ FROM ${HUBEZ_COMMON}.EZ_MON_STAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' GROUP BY SUM_YM ) A WHERE 1=1 @@ -187,7 +187,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') ) ecm1, ( SELECT @@ -197,7 +197,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'SMS' ) S1, ( @@ -208,7 +208,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'LMS' ) L1, ( @@ -219,7 +219,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'MMS' ) M1, ( @@ -230,7 +230,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' ) A1 UNION ALL @@ -260,7 +260,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') GROUP BY SUM_YMD ) ecm, (SELECT SUM_YMD @@ -270,7 +270,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'SMS' GROUP BY SUM_YMD ) S, (SELECT @@ -281,7 +281,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'LMS' GROUP BY SUM_YMD ) L, ( SELECT @@ -292,7 +292,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'MMS' GROUP BY SUM_YMD ) M, ( SELECT @@ -303,7 +303,7 @@ FROM ${HUBEZ_COMMON}.EZ_DAY_STAT WHERE 1=1 - AND SUM_YMD BETWEEN DATE_FORMAT(#{startDay},'%Y%m%d') AND DATE_FORMAT(#{endDay},'%Y%m%d') + AND SUM_YMD BETWEEN STR_TO_DATE(#{startDay},'%Y%m%d') AND STR_TO_DATE(#{endDay},'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' GROUP BY SUM_YMD ) A WHERE 1=1 @@ -324,7 +324,7 @@ ,USER_SEQ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND CUST_NM LIKE CONCAT('%',#{custNm},'%') @@ -366,7 +366,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') GROUP BY SUM_YM, USER_SEQ) ecm, (SELECT S1.SUM_YM @@ -383,7 +383,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'SMS' GROUP BY SUM_YM, USER_SEQ) S1 LEFT OUTER JOIN @@ -395,7 +395,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND STR_TO_DATE(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' AND RPLCSND_CH_CD = 'SMS' GROUP BY SUM_YM, USER_SEQ) S2 @@ -417,7 +417,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'LMS' GROUP BY SUM_YM, USER_SEQ) S1 LEFT OUTER JOIN @@ -429,7 +429,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' AND RPLCSND_CH_CD = 'LMS' GROUP BY SUM_YM, USER_SEQ) S2 @@ -451,7 +451,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'MMS' GROUP BY SUM_YM, USER_SEQ) S1 LEFT OUTER JOIN @@ -463,7 +463,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' AND RPLCSND_CH_CD = 'MMS' GROUP BY SUM_YM, USER_SEQ) S2 @@ -479,7 +479,7 @@ FROM ${HUBEZ_COMMON}.EZ_CUST_MSTAT WHERE 1=1 - AND SUM_YM BETWEEN DATE_FORMAT(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') + AND SUM_YM BETWEEN STR_TO_DATE(CONCAT(#{startMon},'01'),'%Y%m%d') AND DATE_FORMAT(CONCAT(#{endMon},'01'),'%Y%m%d') AND SND_CH_CD = 'ALIMTALK' GROUP BY SUM_YM, USER_SEQ ) A WHERE 1=1 @@ -497,7 +497,7 @@ AND ecm.BIZRNO LIKE CONCAT('%',#{bizrno},'%') - ORDER BY ecm.SUM_YM, ecm.USER_SEQ DESC + ORDER BY ecm.SUM_YM DESC, ecm.USER_SEQ DESC LIMIT #{page}, #{pagePerRows} @@ -689,7 +689,7 @@ AND ecd.BIZRNO LIKE CONCAT('%',#{bizrno},'%') - ORDER BY ecd.SUM_YMD, ecd.USER_SEQ DESC + ORDER BY ecd.SUM_YMD DESC, ecd.USER_SEQ DESC LIMIT #{page}, #{pagePerRows} \ No newline at end of file