diff --git a/frontend/src/assets/css/error.css b/frontend/src/assets/css/error.css new file mode 100644 index 0000000..2c7b241 --- /dev/null +++ b/frontend/src/assets/css/error.css @@ -0,0 +1,72 @@ +@charset "utf-8"; +/* CSS Document */ + +@font-face { + font-family: 'SpoqaHanSansNeo'; + src: url('../font/SpoqaHanSansNeo-Thin.woff2') format('woff2'); + font-weight: 100; + font-style: normal; +} +@font-face { + font-family: 'SpoqaHanSansNeo'; + src: url('../font/SpoqaHanSansNeo-Light.woff2') format('woff2'); + font-weight: 300; + font-style: normal; +} +@font-face { + font-family: 'SpoqaHanSansNeo'; + src: url('../font/SpoqaHanSansNeo-Regular.woff2') format('woff2'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'SpoqaHanSansNeo'; + src: url('../font/SpoqaHanSansNeo-Medium.woff2') format('woff2'); + font-weight: 500; + font-style: normal; +} +@font-face { + font-family: 'SpoqaHanSansNeo'; + src: url('../font/SpoqaHanSansNeo-Bold.woff2') format('woff2'); + font-weight: 700; + font-style: normal; +} + + +.error-wrap {background: #fff; text-align: center; padding:0; margin: 0 auto; font-family: 'SpoqaHanSansNeo'; + width:90vw; height:90vh; position: relative; } +.error-body { width:450px; max-width: 98%; margin: 0 auto; text-align: center; position: absolute; top:50%;transform: translate(0, -50%); left:calc(50% - 225px); } +.error-body > .header { font-weight: 700; font-size: 2.5em; margin: 30px 0 20px 0;} +.error-body > .message { font-weight: 400; font-size:1em; line-height: 150%;} +.error-body > .error-btns { width:100%; display: flex;text-align: center; margin-top: 3em; } +.error-body > .error-btns a:nth-child(1) {background: #eb008b; border:1px solid #eb008b; font-weight: 400; font-size:1em; line-height: 150%; border-radius: 5px; color:#fff; text-decoration:none;padding: 10px 0; width: 50%; } +.error-body > .error-btns a:nth-child(2) { display: inline-block; background: #fff; border:1px solid #282828; font-weight: 400; font-size:1em; line-height: 150%; border-radius: 5px; color:#000; text-decoration:none; padding: 10px 0; width: 50%; margin-left: 10px; } + + + +@media only screen and (max-width: 550px) { + .error-body { max-width: 98%; margin: 0 auto; text-align: center; position: relative; top:3em; left:auto; transform: none;} +} + + + +@media only screen and (max-width: 414px) { + .error-body > img { width:6em;} + .error-body > .header {font-size: 1.6em; letter-spacing: -0.05em; margin: 20px 0 10px 0;} + .error-body > .message {font-size:0.9em; letter-spacing: -0.05em;} +} + + +@media only screen and (max-width: 280px) { + .error-body > img { width:6em;} + .error-body > .header {font-size: 1.35em; letter-spacing: -0.05em; margin: 20px 0 10px 0;} + .error-body > .message {font-size:0.9em; letter-spacing: -0.05em; line-height: 140%;} + .error-body > .error-btns { margin-top: 2em; } +} + + + + + + + diff --git a/frontend/src/assets/css/style.css b/frontend/src/assets/css/style.css index f87ebc2..8b02c2f 100644 --- a/frontend/src/assets/css/style.css +++ b/frontend/src/assets/css/style.css @@ -539,95 +539,62 @@ header .user_wrap .user_info .logout { } /* input cal + search-box*/ -/*.w35{width:35%;}*/ -/*.contents .table.table_form.m50{margin-bottom: 50px;}*/ +.w35{width:35%;} +.contents .table.table_form.m50{margin-bottom: 50px;} -/*.contents .input_box.cal{*/ -/* display: inline-block;*/ -/* width: 27.34%;*/ -/*}*/ - -/*.contents .input_box.cal label {*/ -/* display: block;*/ -/*}*/ - -/*.contents .input_box.cal .txt{*/ -/* display: inline-block;*/ -/*}*/ - -/*.contents .input_box.cal p{*/ -/* display: inline-flex;*/ -/* margin-left: 10px;*/ -/*}*/ - -/*.contents .input_box.cal input {*/ -/* display: inline-block;*/ -/* width: 48%;*/ -/* float: left;*/ -/* background: #fff url(../images/icon-calender.png) no-repeat right 6% center;*/ -/*}*/ - -/*.contents .input_box.cal input {*/ -/* display: inline-block;*/ -/* width: 48%;*/ -/* float: left;*/ -/* background: #fff url(../images/icon-calender.png) no-repeat right 6% center;*/ -/*}*/ - -/*.contents .input_box.cal span {*/ -/* display: inline-block;*/ -/* width: 48%;*/ -/* float: left;*/ -/* background: #fff url(../images/icon-calender.png) no-repeat right 6% center;*/ -/*}*/ - -.custom_input.icon_date input[type="text"] { - width: 52%; - float: left; - background: #fff url(../images/icon-calender.png) no-repeat right 6% center; -} -.custom_input.icon_date input[type="text"]:focus { - border-color: #cccccc; - background-color: #f6f6f6; - color: #898989; +.contents .input_box.cal{ + display: inline-block; + width: 27.34%; } -.contents .input_box.cal span + input{ +.contents .input_box.cal label { + display: block; +} + +.contents .input_box.cal .txt{ + display: inline-block; +} + +.contents .input_box.cal p{ + display: inline-flex; + margin-left: 10px; +} + +.contents .input_box.cal input { + display: inline-block; + width: 48%; + float: left; + background: #fff url(../images/icon-calender.png) no-repeat right 6% center; +} +.contents .input_box.cal input + input{ margin-left: 5%; } - -.vdp-datepicker__calendar header { - display: block; - line-height: 40px; - height: 40px; +.contents .input_box.cal.one{ + width: 13.67%; } -/*.contents .input_box.cal input + input{*/ -/* margin-left: 5%;*/ -/*}*/ +.contents .input_box.cal.one input{ + width: 100%; +} -/*.contents .input_box.cal.one{*/ -/* width: 13.67%;*/ -/*}*/ +.contents .input_box.cal.one + .btn-a{ + margin-right: 10px; +} -/*.contents .input_box.cal.one input{*/ -/* width: 100%;*/ -/*}*/ +.contents .input_box.cal .term{ + display: flex; + justify-content: space-around; + align-items: center; +} -/*.contents .input_box.cal.one + .btn-a{*/ -/* margin-right: 10px;*/ -/*}*/ +.contents .input_box.cal .term input:nth-child(1){ + margin-right: 4%; +} -/*.contents .input_box.cal .term{*/ -/* display: flex;*/ -/* justify-content: space-around;*/ -/* align-items: center;*/ -/*}*/ +.vdp-datepicker__calendar div {margin-top:80px;} -/*.contents .input_box.cal .term input:nth-child(1){*/ -/* margin-right: 4%;*/ -/*}*/ +/*.vdp-datepicker__calendar div*/ .contents .input_box .search-box { background: #fff url(../images/icon-search.png) no-repeat 6% center/14px auto; @@ -904,6 +871,8 @@ header .user_wrap .user_info .logout { /*contents table 추가*/ +/* arrow_box 반려사유 삭제 */ +/* .contents .table table .arrow_box { display: none; background-color: #fff; @@ -946,6 +915,7 @@ header .user_wrap .user_info .logout { width: 0; z-index: 1; } +*/ .contents .table.calculate table td, .contents .table.calculate table th{ border-left: 1px solid #dadae6; @@ -976,10 +946,6 @@ header .user_wrap .user_info .logout { .contents .table table td span {cursor: pointer;} -.contents .table table td .linkstyle {cursor: pointer; text-decoration: underline;} -.contents .table table td .linkstyle:hover {color:#eb008b;} - - .contents .table table td span:hover + p.arrow_box { display: block; } @@ -1593,10 +1559,10 @@ header .user_wrap .user_info .logout { background: url(../images/icon-add-b.png) no-repeat center center; } -/*.popup.popup_form.register .input_add div:nth-child(2){*/ -/* width: 89%;*/ -/* padding-top: 5px;*/ -/*}*/ +.popup.popup_form.register .input_add div:nth-child(2){ + width: 89%; + padding-top: 5px; +} .popup .button.white{ background-color: #fff; diff --git a/frontend/src/assets/images/error_message_page.png b/frontend/src/assets/images/error_message_page.png new file mode 100644 index 0000000..ecb87a1 Binary files /dev/null and b/frontend/src/assets/images/error_message_page.png differ diff --git a/frontend/src/assets/images/error_message_system.png b/frontend/src/assets/images/error_message_system.png new file mode 100644 index 0000000..6a4c74f Binary files /dev/null and b/frontend/src/assets/images/error_message_system.png differ diff --git a/frontend/src/components/HubWebHeader.vue b/frontend/src/components/HubWebHeader.vue index 6f668d1..88d769c 100644 --- a/frontend/src/components/HubWebHeader.vue +++ b/frontend/src/components/HubWebHeader.vue @@ -1,4 +1,4 @@ - @@ -74,6 +75,7 @@ import api from '@/service/api'; import riskMgtApi from '../service/riskMgtApi'; import lodash from "lodash"; import { utils_mixin, chkPattern2 } from '../service/mixins'; +import ValidationConfirmPopup from './ValidationConfirmPopup.vue'; export default { mixins: [utils_mixin, chkPattern2], data(){ @@ -84,7 +86,6 @@ export default { // word:'', // }, msgBlckwordList: [ - { seqNo: '' , word : '도박'}, // { word : '스팸'}, ], rsnType: [], @@ -106,6 +107,9 @@ export default { created(){ this.formReset(); }, + components: { + ValidationConfirmPopup + }, methods :{ ModalOpen(){ @@ -141,22 +145,29 @@ export default { }, async doInsert(){ - if(this.doValidate() && window.confirm('등록 하시겠습니까?')){ + // if(this.doValidate() && window.confirm('등록 하시겠습니까?')){ try { const response = await riskMgtApi.msgIntrcpList(this.row); const result = response.data; if (result != null && result.retCode == "0000") { - alert('저장 하였습니다.'); + this.row.title = '메세지 차단'; + this.row.msg1 = '저장하였습니다.'; + this.$parent.msgAlertModalOpen(this.row); } this.toComplete(); } catch(err) { - alert("실패 하였습니다."); + this.row.title = '메세지 차단'; + this.row.msg1 = '실패하였습니다.'; + this.$parent.msgAlertModalOpen(this.row); } - } + // } }, doValidate(){ - if(this.isNull(this.word)){ + if(this.isNull(this.msgBlckwordList)){ + this.row.title = '메세지 차단'; + this.row.msg1 = '문구를 입력해주세요.'; + this.$parent.msgAlertModalOpen(this.row); this.$refs._word.focus(); return false; } @@ -176,6 +187,13 @@ export default { }, //신규등록 팝업에서 문구 추가 버튼 doAdd: function() { + if(this.isNull(this.word)){ + this.row.title = '메세지 차단'; + this.row.msg1 = '문구를 입력해주세요.'; + this.$parent.msgAlertModalOpen(this.row); + this.$refs._word.focus(); + return false; + } if(this.msgBlckwordList.length < 10){ this.msgBlckwordList.push({ //seqNo: '', @@ -194,11 +212,11 @@ export default { Object.assign(this.$data, this.$options.data()); this.insertType = type; }, - - - - - + regisConfirm(){ + if(this.doValidate()){ + this.$refs.ValidationConfirmPopup.msgConfirmInsertOpen(); + } + }, }, diff --git a/frontend/src/modules/riskMgt/components/IntrcpDetailPopup.vue b/frontend/src/modules/riskMgt/components/IntrcpDetailPopup.vue index 6745476..3709e54 100644 --- a/frontend/src/modules/riskMgt/components/IntrcpDetailPopup.vue +++ b/frontend/src/modules/riskMgt/components/IntrcpDetailPopup.vue @@ -58,12 +58,12 @@ - + @@ -73,6 +73,7 @@ //import api from '@/service/api'; import riskMgtApi from '../service/riskMgtApi'; import api from '@/service/api'; +import ValidationConfirmPopup from './ValidationConfirmPopup.vue'; export default { data(){ return{ @@ -88,6 +89,9 @@ export default { meno: '', } }, + components: { + ValidationConfirmPopup + }, methods :{ // 모달 띄우기 async IntrcpDetailModalOpen(props){ @@ -134,12 +138,14 @@ export default { //삭제버튼 async IntrcpDeleteModal(){ this.setCodeDate(); - if(window.confirm('삭제 하시겠습니까?')){ + // if(window.confirm('삭제 하시겠습니까?')){ try { const response = await riskMgtApi.deleteIntrcp(this.row); const result = response.data; if (result != null && result.retCode == "0000") { - alert('삭제 하였습니다.'); + this.row.title = '발신번호 차단'; + this.row.msg1 = '삭제하였습니다.'; + this.$parent.alertInsert(this.row); // grid.reloadData(); // this.$refs.table.reloadData(); this.toComplete(); @@ -147,22 +153,24 @@ export default { } catch(err) { alert("실패 하였습니다."); } - } + // } }, //수정버튼 async IntrcpUpdateModal(){ - if(this.doValidate() && window.confirm('수정 하시겠습니까?')){ + // if(this.doValidate() && window.confirm('수정 하시겠습니까?')){ try { const response = await riskMgtApi.updateIntrcp(this.row); const result = response.data; if (result != null && result.retCode == "0000") { - alert('수정 하였습니다.'); + this.row.title = '발신번호 차단'; + this.row.msg1 = '수정 하였습니다.'; + this.$parent.alertInsert(this.row); this.toComplete(); } } catch(err) { alert("실패 하였습니다."); } - } + // } }, // 모달 끄기 ModalClose(){ @@ -191,6 +199,17 @@ export default { this.row.meno=this.meno; return true; }, + UpdateConfirm(){ + if(this.doValidate()){ + this.$refs.ValidationConfirmPopup.confirmUpdateOpen(); + } + }, + DeleteConfirm(){ + if(this.doValidate()){ + this.$refs.ValidationConfirmPopup.confirmDeleteOpen(); + } + }, + diff --git a/frontend/src/modules/riskMgt/components/IntrcpMsgDetail.vue b/frontend/src/modules/riskMgt/components/IntrcpMsgDetail.vue index 76a2e63..b6bb60c 100644 --- a/frontend/src/modules/riskMgt/components/IntrcpMsgDetail.vue +++ b/frontend/src/modules/riskMgt/components/IntrcpMsgDetail.vue @@ -40,7 +40,7 @@ 차단사유 -
+
+
- +
- +
@@ -42,215 +72,298 @@
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
날짜고객사명사업자번호전체SMSLMSMMS알림톡
발송건수성공건수/(%)발송건수성공건수/(%)발송건수성공건수/(%)발송건수성공건수/(%)발송건수성공건수/(%)
2022-04유플러스229-81-3993884,000,00084,000,000
(100%)
21,000,00021,000,000
(100%)
21,000,00021,000,000
(100%)
21,000,00021,000,000
(100%)
21,000,00021,000,000
(100%)
2022-03유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2022-02유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2022-01유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2021-12유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2021-11유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2021-10유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2021-09유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2021-08유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
2021-07유플러스229-81-3993840,000,00040,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
10,000,00010,000,000
(100%)
-
+
+ \ No newline at end of file diff --git a/frontend/src/modules/stats/views/MonthList.vue b/frontend/src/modules/stats/views/MonthList.vue index d9e428e..dddcb86 100644 --- a/frontend/src/modules/stats/views/MonthList.vue +++ b/frontend/src/modules/stats/views/MonthList.vue @@ -1,234 +1,285 @@ \ No newline at end of file + + \ No newline at end of file diff --git a/frontend/src/views/ErrorPage404.vue b/frontend/src/views/ErrorPage404.vue index 8e3d41d..0e28904 100644 --- a/frontend/src/views/ErrorPage404.vue +++ b/frontend/src/views/ErrorPage404.vue @@ -1,6 +1,6 @@ @@ -29,7 +29,7 @@ export default { NavBar, // vuejsDatepicker, HubWebHeader, - HubWebFooter, + HubWebFooter, }, data(){ return{ @@ -38,12 +38,12 @@ export default { isAuthChk: false, } }, - created() { + created() { this.getLogin; this.getAuthChk; }, mounted() { - + } ,computed: { ...mapGetters({ @@ -55,10 +55,10 @@ export default { watch: { getLogin(data) { if (data != null && data != '' && data == true) { - this.isLogin = true; + this.isLogin = true; } else { - this.isLogin = false; - } + this.isLogin = false; + } }, getErrorPage(data) { if (data != null && data != '' && data == true) { @@ -67,12 +67,12 @@ export default { this.isErrPage = false; } }, - getAuthChk(data) { + getAuthChk(data) { if (data != null && data != '' && data == true) { - this.isAuthChk = true; + this.isAuthChk = true; } else { - this.isAuthChk = false; - } + this.isAuthChk = false; + } }, } }; diff --git a/src/main/java/kr/co/uplus/ez/api/riskMgt/dto/ZezNumIntrcpList.java b/src/main/java/kr/co/uplus/ez/api/riskMgt/dto/ZezNumIntrcpList.java index ce92704..f158c91 100644 --- a/src/main/java/kr/co/uplus/ez/api/riskMgt/dto/ZezNumIntrcpList.java +++ b/src/main/java/kr/co/uplus/ez/api/riskMgt/dto/ZezNumIntrcpList.java @@ -23,5 +23,6 @@ public class ZezNumIntrcpList implements Serializable { private String regDt; @ApiModelProperty(example = "등록구분", name = "등록구분", dataType = "String") private String regTpCd; - + @ApiModelProperty(hidden = true) + private String userId; } \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtController.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtController.java index e700a4a..c92d627 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtController.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtController.java @@ -12,9 +12,12 @@ import kr.co.uplus.ez.api.sendNumMgt.dto.*; 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.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @@ -24,6 +27,8 @@ import java.util.Map; @RequestMapping(value = "api/v1/bo/sendNumMgt") public class SendNumMgtController { + private static final Logger logger = LoggerFactory.getLogger(SendNumMgtController.class); + @Autowired SendNumMgtService sendNumService; @@ -94,13 +99,8 @@ public class SendNumMgtController { @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) @RequestMapping(value = "insertNumber", method = { RequestMethod.POST }) @ResponseBody - public InsertNumberResDto insertNumber(@RequestBody @Valid InsertNumberReqDto insertNumberReqDto, BindingResult bindingResult) { - - if (validComponents.validParameter(bindingResult)) { - return new InsertNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR); - } - - return sendNumService.insertNumber(insertNumberReqDto); + public InsertNumberResDto insertNumber(@RequestPart(value = "key") InsertNumberReqDto insertNumberReqDto, MultipartHttpServletRequest multipartRequest) { + return sendNumService.insertNumber(insertNumberReqDto, multipartRequest); } /** diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java index 4dcd123..fa631ea 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/SendNumMgtService.java @@ -5,11 +5,13 @@ 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.FileUtil; +import org.apache.commons.lang3.StringUtils; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import java.io.File; import java.util.ArrayList; @@ -28,7 +30,8 @@ public class SendNumMgtService { @Qualifier("sqlSessionTemplateDb2") private SqlSessionTemplate sqlSessionSlave; - + @Value("${file-resource.info.sendNumber.path:/efs/admin/sendNumber/}") + private String sendNumUploadPath; /** * date : 2022. 4. 25. * auth : ckr @@ -138,145 +141,161 @@ public class SendNumMgtService { * @param paramMap * @return */ - public InsertNumberResDto insertNumber(InsertNumberReqDto insertNumberReqDto) { + public InsertNumberResDto insertNumber(InsertNumberReqDto insertNumberReqDto, MultipartHttpServletRequest multipartRequest) { FileUtil fileUtil = new FileUtil(); SendNumMgtMapper sendNumMgtMapper = sqlSessionSlave.getMapper(SendNumMgtMapper.class); String adminId = insertNumberReqDto.getAdminId(); - String userSeq = sendNumMgtMapper.selectUserSeqByAdminId(adminId); + if(StringUtils.equals("01", insertNumberReqDto.getNmineeDivCd())){ + File tenureFile = (File) multipartRequest.getFile("tenureFile"); + File businessFile = (File) multipartRequest.getFile("businessFile"); + File communicationFile = (File) multipartRequest.getFile("communicationFile"); - 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 list; - @ApiModelProperty(example = "등록요청번호", name = "등록요청번호", dataType = "String", hidden=true) private String regRegNo; } diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/DetailNumberReqDto.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/DetailNumberReqDto.java index ef0d5ab..9a3fb13 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/DetailNumberReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/DetailNumberReqDto.java @@ -1,18 +1,18 @@ package kr.co.uplus.ez.api.sendNumMgt.dto; -import java.io.Serializable; - import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; + @SuppressWarnings("serial") @Data public class DetailNumberReqDto implements Serializable{ @ApiModelProperty(example = "등록번호", name = "등록번호", dataType = "String") - private String regNo; + private String regReqNo; - @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") - private String adminId; + @ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String") + private String sndrno; } diff --git a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/SendNumberInfo.java b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/SendNumberInfo.java index 7e0ed4a..8a59d12 100644 --- a/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/SendNumberInfo.java +++ b/src/main/java/kr/co/uplus/ez/api/sendNumMgt/dto/SendNumberInfo.java @@ -31,5 +31,7 @@ public class SendNumberInfo implements Serializable{ private String regTpCd; @ApiModelProperty(example = "등록일", name = "등록일", notes = "YYYY-MM-DD", dataType = "String") private String regDt; + @ApiModelProperty(example = "발신번호등록번호", name = "발신번호등록번호", dataType = "String") + private String regReqNo; } diff --git a/src/main/resources/mapper/mysql/riskMgt/riskMgt-mapper.xml b/src/main/resources/mapper/mysql/riskMgt/riskMgt-mapper.xml index 8837009..3bfed37 100644 --- a/src/main/resources/mapper/mysql/riskMgt/riskMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/riskMgt/riskMgt-mapper.xml @@ -152,6 +152,7 @@ , eci.BIZRNO , er.AUTHCD_080 , er.RCVBLCKNO + , esu.USER_ID , DATE_FORMAT(er.REG_DT, '%Y-%m-%d') AS REG_DT ,( SELECT @@ -266,6 +267,7 @@ diff --git a/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml b/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml index 5bbc0c3..b2055dc 100644 --- a/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/sendNumMgt/sendNumMgt-mapper.xml @@ -347,37 +347,76 @@ \ 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 8e45e3a..7e95b9b 100644 --- a/src/main/resources/mapper/mysql/stats/stats-mapper.xml +++ b/src/main/resources/mapper/mysql/stats/stats-mapper.xml @@ -5,253 +5,691 @@ - + SELECT + COUNT(*) AS TOTALCNT + FROM + (SELECT + SUM_YM + ,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 CUST_NM LIKE CONCAT('%',#{custNm},'%') + + + AND BIZRNO LIKE CONCAT('%',#{bizrno},'%') + + GROUP BY SUM_YM, USER_SEQ) A + - SELECT - ecm.SUM_YMD --- ,ecm.CUST_NM --- ,ecm.BIZRNO - , ecm.SND_CNT - , ecm.SUCC_CNT - , ecm.SUCC_RT - , S.SND_CNT AS SND_CNT_S - , S.SUCC_CNT AS SUCC_CNT_S - , S.SUCC_RT AS SUCC_RT_S - , L.SND_CNT AS SND_CNT_L - , L.SUCC_CNT AS SUCC_CNT_L - , L.SUCC_RT AS SUCC_RT_L - , M.SND_CNT AS SND_CNT_M - , M.SUCC_CNT AS SUCC_CNT_M - , M.SUCC_RT AS SUCC_RT_M - , R.SND_CNT AS SND_CNT_R - , R.SUCC_CNT AS SUCC_CNT_R - , R.SUCC_RT AS SUCC_RT_R + + + \ No newline at end of file