From 940707deaa8497b9e90b0090375f7a1a9fa23b23 Mon Sep 17 00:00:00 2001 From: kimre Date: Thu, 9 Jun 2022 21:36:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=EC=8A=A4=ED=85=9C=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=20-=20=EA=B6=8C=ED=95=9C=EA=B4=80=EB=A6=AC,=20=EA=B3=A0?= =?UTF-8?q?=EA=B0=9D=EA=B4=80=EB=A6=AC=20-=20=EC=B2=AD=EC=95=BD=EA=B3=A0?= =?UTF-8?q?=EA=B0=9D=EA=B4=80=EB=A6=AC/=ED=9A=8C=EC=9B=90=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/assets/css/checktoggle.css | 6 + frontend/src/assets/css/layout.css | 2 +- frontend/src/assets/css/style.css | 274 ++++++- frontend/src/assets/images/icon-add-b.png | Bin 0 -> 169 bytes frontend/src/components/modal/confirm.vue | 78 ++ frontend/src/components/modal/searchID.vue | 178 +++++ .../modules/custMgt/components/AdminNmPop.vue | 177 +++++ .../custMgt/components/CarryOverListPop.vue | 129 ++++ .../custMgt/components/MemberBulkRegPop.vue | 255 +++++++ .../custMgt/components/MemberDetailList.vue | 89 +++ .../custMgt/components/SearchIdPopup.vue | 144 ++++ .../modules/custMgt/components/SubsRegPop.vue | 227 ++++++ .../custMgt/components/TestIdRegPop.vue | 227 ++++++ .../components/ValidationConfirmPop.vue | 395 ++++++++++ frontend/src/modules/custMgt/router/index.js | 23 +- .../src/modules/custMgt/service/custMgtApi.js | 79 ++ .../src/modules/custMgt/service/mixins.js | 353 +++++++++ .../service/mock/carryOverExcelHeader.json | 26 + .../service/mock/sampleExcelHeader.json | 50 ++ .../custMgt/service/mock/subsExcelHeader.json | 42 ++ .../src/modules/custMgt/views/CustList.vue | 285 -------- .../custMgt/views/MemberAdminDetail.vue | 234 ++++++ .../modules/custMgt/views/MemberDetail.vue | 298 ++++---- .../src/modules/custMgt/views/MemberList.vue | 362 +++++++--- .../src/modules/custMgt/views/SubsDetail.vue | 516 +++++++++---- .../src/modules/custMgt/views/SubsList.vue | 325 +++++++++ .../src/modules/login/views/LoginAuth.vue | 13 +- .../src/modules/login/views/LoginMain.vue | 5 +- .../src/modules/login/views/ResetPassword.vue | 6 +- .../modules/login/views/UpdatePassword.vue | 139 ++-- frontend/src/modules/servMgt/router/index.js | 20 +- .../modules/servMgt/views/rejectRecvList.vue | 374 +++++----- frontend/src/modules/sysMgt/AdminList.vue | 273 ------- frontend/src/modules/sysMgt/AuthList.vue | 107 --- .../sysMgt/components/AdminDetailPop.vue | 21 +- .../modules/sysMgt/components/AdminRegPop.vue | 98 ++- .../sysMgt/components/SearchIdPopup.vue | 164 +++++ frontend/src/modules/sysMgt/router/index.js | 15 + .../src/modules/sysMgt/service/sysMgtApi.js | 55 +- .../src/modules/sysMgt/views/AdminList.vue | 6 +- frontend/src/modules/sysMgt/views/AuthAdd.vue | 304 ++++++++ .../src/modules/sysMgt/views/AuthList.vue | 109 ++- .../src/modules/sysMgt/views/AuthModify.vue | 338 +++++++++ frontend/src/router.js | 4 +- .../ez/api/custMgt/CustMgtController.java | 238 +++++- .../uplus/ez/api/custMgt/CustMgtMapper.java | 80 ++- .../uplus/ez/api/custMgt/CustMgtService.java | 644 +++++++++++------ .../uplus/ez/api/custMgt/dto/AllMemoList.java | 19 + .../ez/api/custMgt/dto/AllMemoListReqDto.java | 18 + .../ez/api/custMgt/dto/AllMemoListRes.java | 20 + .../ez/api/custMgt/dto/AllMemoListResDto.java | 38 + .../uplus/ez/api/custMgt/dto/CarryOver.java | 22 + .../ez/api/custMgt/dto/CarryOverListRes.java | 17 +- .../co/uplus/ez/api/custMgt/dto/CustInfo.java | 46 ++ .../ez/api/custMgt/dto/DeleteMemoReqDto.java | 19 + .../ez/api/custMgt/dto/DeleteMemoResDto.java | 38 + .../uplus/ez/api/custMgt/dto/DeleteUser.java | 19 + .../ez/api/custMgt/dto/DeleteUserReqDto.java | 18 + .../ez/api/custMgt/dto/DeleteUserResDto.java | 38 + .../ez/api/custMgt/dto/InsertMassUser.java | 22 + .../api/custMgt/dto/InsertMassUserReqDto.java | 18 + .../api/custMgt/dto/InsertMassUserResDto.java | 30 + .../api/custMgt/dto/InsertTestIdReqDto.java | 38 + .../api/custMgt/dto/InsertTestIdResDto.java | 33 + .../ez/api/custMgt/dto/InsertUserReqDto.java | 27 + .../ez/api/custMgt/dto/InsertUserResDto.java | 30 + .../custMgt/dto/MemberAdminDetailReqDto.java | 24 + .../api/custMgt/dto/MemberAdminDetailRes.java | 44 ++ .../custMgt/dto/MemberAdminDetailResDto.java | 32 + .../ez/api/custMgt/dto/MemberDetail.java | 25 +- .../ez/api/custMgt/dto/MemberDetailRes.java | 33 + .../api/custMgt/dto/MemberDetailResDto.java | 32 + .../ez/api/custMgt/dto/MemberListReqDto.java | 10 +- .../co/uplus/ez/api/custMgt/dto/SubsInfo.java | 52 ++ .../uplus/ez/api/custMgt/dto/SvcUserInfo.java | 56 ++ .../custMgt/dto/UpdateAdminInfoReqDto.java | 21 + .../custMgt/dto/UpdateAdminInfoResDto.java | 34 + .../ez/api/custMgt/dto/UpdateUserReqDto.java | 27 + .../ez/api/custMgt/dto/UpdateUserResDto.java | 31 + .../ez/api/servMgt/ServMgtController.java | 34 +- .../uplus/ez/api/servMgt/ServMgtMapper.java | 10 +- .../uplus/ez/api/servMgt/ServMgtService.java | 83 ++- .../ez/api/servMgt/dto/RejectRecvInfo.java | 27 + .../api/servMgt/dto/RejectRecvListReqDto.java | 28 + .../ez/api/servMgt/dto/RejectRecvListRes.java | 15 + .../api/servMgt/dto/RejectRecvListResDto.java | 31 + .../uplus/ez/api/sysMgt/SysMgtController.java | 279 +++---- .../co/uplus/ez/api/sysMgt/SysMgtMapper.java | 25 +- .../co/uplus/ez/api/sysMgt/SysMgtService.java | 265 +++++-- .../uplus/ez/api/sysMgt/dto/AuthDetail.java | 26 + .../ez/api/sysMgt/dto/AuthDetailReqDto.java | 14 + .../ez/api/sysMgt/dto/AuthDetailResDto.java | 31 + .../co/uplus/ez/api/sysMgt/dto/AuthInfo.java | 23 + .../uplus/ez/api/sysMgt/dto/AuthListRes.java | 14 + .../ez/api/sysMgt/dto/AuthListResDto.java | 33 + .../co/uplus/ez/api/sysMgt/dto/AuthMenu.java | 24 + .../ez/api/sysMgt/dto/DeleteAdminReqDto.java | 2 +- .../ez/api/sysMgt/dto/DeleteAuthReqDto.java | 18 + .../ez/api/sysMgt/dto/DeleteAuthResDto.java | 31 + .../ez/api/sysMgt/dto/InsertAuthReqDto.java | 25 + .../ez/api/sysMgt/dto/InsertAuthResDto.java | 31 + .../ez/api/sysMgt/dto/UpdateAuthReqDto.java | 24 + .../ez/api/sysMgt/dto/UpdateAuthResDto.java | 31 + .../ez/common/components/ValidComponents.java | 40 ++ .../uplus/ez/common/data/ApiResponseCode.java | 78 +- .../kr/co/uplus/ez/common/data/Const.java | 49 ++ .../kr/co/uplus/ez/common/data/ImUser.java | 37 + src/main/resources/application-local.yml | 15 +- .../mapper/mysql/comm/comm-mapper.xml | 4 +- .../mapper/mysql/custMgt/custMgt-mapper.xml | 679 +++++++++++++++++- .../mapper/mysql/login/login-mapper.xml | 10 +- .../mapper/mysql/servMgt/servMgt-mapper.xml | 73 ++ .../mapper/mysql/sysMgt/sysMgt-mapper.xml | 407 +++++++---- 113 files changed, 9134 insertions(+), 2100 deletions(-) create mode 100644 frontend/src/assets/css/checktoggle.css create mode 100644 frontend/src/assets/images/icon-add-b.png create mode 100644 frontend/src/components/modal/confirm.vue create mode 100644 frontend/src/components/modal/searchID.vue create mode 100644 frontend/src/modules/custMgt/components/AdminNmPop.vue create mode 100644 frontend/src/modules/custMgt/components/CarryOverListPop.vue create mode 100644 frontend/src/modules/custMgt/components/MemberBulkRegPop.vue create mode 100644 frontend/src/modules/custMgt/components/MemberDetailList.vue create mode 100644 frontend/src/modules/custMgt/components/SearchIdPopup.vue create mode 100644 frontend/src/modules/custMgt/components/SubsRegPop.vue create mode 100644 frontend/src/modules/custMgt/components/TestIdRegPop.vue create mode 100644 frontend/src/modules/custMgt/components/ValidationConfirmPop.vue create mode 100644 frontend/src/modules/custMgt/service/custMgtApi.js create mode 100644 frontend/src/modules/custMgt/service/mixins.js create mode 100644 frontend/src/modules/custMgt/service/mock/carryOverExcelHeader.json create mode 100644 frontend/src/modules/custMgt/service/mock/sampleExcelHeader.json create mode 100644 frontend/src/modules/custMgt/service/mock/subsExcelHeader.json delete mode 100644 frontend/src/modules/custMgt/views/CustList.vue create mode 100644 frontend/src/modules/custMgt/views/MemberAdminDetail.vue create mode 100644 frontend/src/modules/custMgt/views/SubsList.vue delete mode 100644 frontend/src/modules/sysMgt/AdminList.vue delete mode 100644 frontend/src/modules/sysMgt/AuthList.vue create mode 100644 frontend/src/modules/sysMgt/components/SearchIdPopup.vue create mode 100644 frontend/src/modules/sysMgt/views/AuthAdd.vue create mode 100644 frontend/src/modules/sysMgt/views/AuthModify.vue create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoList.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOver.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/CustInfo.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUser.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUser.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/SubsInfo.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/SvcUserInfo.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvInfo.java create mode 100644 src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetail.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthInfo.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenu.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/common/components/ValidComponents.java create mode 100644 src/main/java/kr/co/uplus/ez/common/data/ImUser.java diff --git a/frontend/src/assets/css/checktoggle.css b/frontend/src/assets/css/checktoggle.css new file mode 100644 index 0000000..814a102 --- /dev/null +++ b/frontend/src/assets/css/checktoggle.css @@ -0,0 +1,6 @@ +.contents .table table input[type="checkbox"] + label.toggle_switch { width: 68px; 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;} \ No newline at end of file diff --git a/frontend/src/assets/css/layout.css b/frontend/src/assets/css/layout.css index add9b44..9227431 100644 --- a/frontend/src/assets/css/layout.css +++ b/frontend/src/assets/css/layout.css @@ -130,7 +130,7 @@ 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-end; align-items: center; margin: 35px 0 25px;} +.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;} diff --git a/frontend/src/assets/css/style.css b/frontend/src/assets/css/style.css index 7066afa..4dc53de 100644 --- a/frontend/src/assets/css/style.css +++ b/frontend/src/assets/css/style.css @@ -395,7 +395,6 @@ header .user_wrap .user_info .logout { color: #ffffff;font-weight: 500; } - .contents .search_wrap { background-color: #f6f6f8; display: -webkit-box; @@ -499,8 +498,6 @@ header .user_wrap .user_info .logout { color: #000; } - - .contents .input_box input { width: 100%; height: 40px; @@ -554,6 +551,15 @@ header .user_wrap .user_info .logout { 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%; @@ -568,6 +574,18 @@ header .user_wrap .user_info .logout { position: absolute; margin: 10px 0 0 10px; color:#666; font-size: 13px; font-weight: 400; } +.contents .input_box.cal.one{ + width: 13.67%; +} + +.contents .input_box.cal.one input{ + width: 100%; +} + +.contents .input_box.cal.one + .btn-a{ + margin-right: 10px; +} + .contents .input_box .search-box { background: #fff url(../images/icon-search.png) no-repeat 6% center/14px auto; padding-left: 43px; @@ -616,7 +634,7 @@ header .user_wrap .user_info .logout { } -.input-memo input{ +.input-memo .memo_text{ height: 240px !important; width: 86%; } @@ -768,6 +786,24 @@ header .user_wrap .user_info .logout { background-color: #eb008b; } +.contents .title_wrap{ + display: flex; + padding: 0 40px; + margin-bottom: 20px; + align-items: center; + justify-content: space-between; +} + +.contents .title_wrap .NumberSe{ + flex-direction: row; + align-items: center; + width: 13.67%; +} + +.contents .title_wrap .NumberSe p{ + margin-right: 10px; +} + /*pagination*/ .contents .pagination .arrow-btn button{ @@ -866,6 +902,19 @@ header .user_wrap .user_info .logout { border-left: 0; } +.contents .table.calculate.scroll{ + max-width: 1240px; + overflow: auto; + margin: 0 auto; + margin-bottom: 60px; + padding: 0; +} + +.contents .table.calculate.scroll div{ + min-width: 1400px; + padding-bottom: 10px; +} + .contents .table table .total{ background-color: #ececf3; } @@ -943,6 +992,11 @@ header .user_wrap .user_info .logout { color: #a5a5a5; } +.contents .table table td.price{ + text-align: right; + padding-right: 10px; +} + .contents .table table td.two_btn_group { display: -webkit-box; display: -ms-flexbox; @@ -1212,6 +1266,8 @@ header .user_wrap .user_info .logout { padding: 0 10px; font-size: 16px; color: #333333; + appearance: none; + background: #fff url(../images/icon-select-down.png)no-repeat right 10px center; } .popup .input_search { @@ -1296,12 +1352,17 @@ header .user_wrap .user_info .logout { color: #333333; } +.popup input.h200{ + height: 200px; + margin: 10px 0; +} + .popup .number{ color:#000000; font-weight: bold; } .popup .number.blue{color:#0073d4;} -.popup .number.red{color:#ff3600;} +.popup .red{color:#ff3600;} .popup.popup_form .table-c{ @@ -1328,7 +1389,7 @@ header .user_wrap .user_info .logout { .popup.b-popup tr .memo{ text-align: left; - padding: 0 0 0 10px; + padding: 5px 0 5px 10px; } .popup.b-popup tr:nth-child(1) .memo:nth-child(1){ @@ -1352,6 +1413,7 @@ header .user_wrap .user_info .logout { margin-bottom: 20px; } + .popup.popup_form .pop-btn2.bulk button{ width: 49%; display: flex; @@ -1361,6 +1423,7 @@ header .user_wrap .user_info .logout { -ms-flex-align: center; align-items: center; justify-content: normal; + font-size: 16px; } .popup.popup_form .pop-btn2.bulk button:nth-child(1)::before{ @@ -1379,11 +1442,30 @@ header .user_wrap .user_info .logout { margin: 2px 5px 0 15px; } -.popup.popup_form .btn-default{ - color: #333333; - border-radius: 6px; - border: 1px solid #a1a1a1; - font-size: 14px; +.popup.popup_form .attach{ + display: flex; + align-items: center; + flex-wrap: wrap; + padding: 5px 0; +} + +.popup.popup_form .attach button{ + margin:0; + width: 35%; +} + +.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; } .popup.popup_form .file{ @@ -1403,16 +1485,28 @@ header .user_wrap .user_info .logout { border: none; } -.popup.popup_form.b-popup .input_add{ +.popup.popup_form.register{ + width:700px; +} + +.popup.popup_form.register table th{ + width:30%; +} + +.popup.popup_form.register .input_search input{ + width:100%; +} + +.popup.popup_form.register .input_add{ padding: 5px 0px 5px 0px; } -.popup.popup_form.b-popup .input_add div{ +.popup.popup_form.register .input_add div{ display: flex; justify-content: space-between; } -.popup.popup_form.b-popup .input_add div input:nth-child(1){ +.popup.popup_form.register .input_add div input:nth-child(1){ margin-right: 5px; width: 95px; } @@ -1422,9 +1516,157 @@ header .user_wrap .user_info .logout { margin-left: 2%; } -.popup.popup_form.b-popup .input_add div:nth-child(2){ +.input_add .button.add::before{ + margin:0px; + 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; } -/*# sourceMappingURL=style.css.map */ \ No newline at end of file +.popup .button.white{ + background-color: #fff; + border-radius: 6px; + border: 1px solid #a1a1a1; + font-size: 16px; + color: #000; +} + +.popup .button.white:hover{ + border-color: #000; +} + +.popup.popup_form .pop-foot{ + margin-top: 15px; +} + +.popup.popup_form.register .pop-foot p:nth-child(1){ + font-weight: 700; +} + +.popup.popup_form .pop-btn3 button{ + width: 25%; +} + +.popup.popup_form .pop-btn3 button:nth-child(2){ + margin-left: 10px; +} + +.popup.popup_form .pop-btn3 .btn-p2color:hover{ + background-color: #000; +} + +.popup.popup_form table .sender{ + padding: 15px 0px 15px 10px +} + +.popup.popup_form table .sender-head{ + display: flex; + justify-content: space-between; + padding: 5px 0; +} + +.popup.popup_form table .sender-head .count span{ + color: #eb008b; + padding-left: 2px; +} + +.popup.popup_form table .radio_group input[type="radio"] + label:nth-child(2){ + margin-right: 10px; +} + +.popup.popup_form table .radio_group input[type="radio"] + label{ + font-size: 14px; +} + +.popup.popup_form table .sender ul{ + margin-top: 10px; + display: flex; + flex-wrap: wrap; +} + +.popup.popup_form table .sender ul li{ + display: inline-flex; + justify-content: space-between; + width: 100%; + align-items: center; +} + +.popup.popup_form table .sender ul li:not(:last-child){ + margin-bottom: 5px; +} + +.popup.popup_form table .sender ul .select-btn{ + display: inline-flex; + width: 50%; +} + +.popup.popup_form .select-btn button{ + width: 50%; + height: 30px; + font-size: 16px; + font-weight: 400; + letter-spacing: -1.1px; + border-radius: 4px; +} + +.popup.popup_form .memo_text{ + width: 300px; +} + +.popup.popup_form table .registration{ + padding-left:20px; +} + +.popup.popup_form table .registration ul{ + display: flex; +} + +.popup.popup_form table .registration ul li{ + display: inline-flex; + align-items: center; + width: 100px; + position: relative; + border: 1px solid #000; + padding: 0 10px; + border-radius: 5px; + margin-right: 15px; + min-height: 30px; + font-size: 16px; +} + +.popup.popup_form table .registration ul li:last-child{ + margin-right: 0; +} + +.popup.popup_form table .registration ul li span a img{ + position: absolute; + right: 0px; + top: 2px; +} + +.popup.popup_form table .input_add{ + display: flex; + justify-content: space-between; + padding: 5px 0px 5px 0px; +} + +textarea{ + resize: none; + min-height: 100px; + padding: 10px; + font-family: 'SpoqaHanSansNeo'; + font-weight: 500; + font-size: 14px; + border: 1px solid #c9c9c9; + border-radius: 4px; +} + +textarea:focus{ + outline: 1px solid #000; +} + + +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/frontend/src/assets/images/icon-add-b.png b/frontend/src/assets/images/icon-add-b.png new file mode 100644 index 0000000000000000000000000000000000000000..31a5da1ab14420223da0001bd2ed025dad1c4577 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-MYN}j zV~9uR+ewaG4F)_c<$wRHzji;?Y(BfARV>74f;YGI(n#j0liN)8vh*|T+PSdz2}6-c zhV|KrB5`T_zyI<5)6TFGuaZ@Lp1FIKtLlpz?yQO3X`goKYaOiNlV9Lexs+G031|(2 Mr>mdKI;Vst02_-n+5i9m literal 0 HcmV?d00001 diff --git a/frontend/src/components/modal/confirm.vue b/frontend/src/components/modal/confirm.vue new file mode 100644 index 0000000..1db1532 --- /dev/null +++ b/frontend/src/components/modal/confirm.vue @@ -0,0 +1,78 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/modal/searchID.vue b/frontend/src/components/modal/searchID.vue new file mode 100644 index 0000000..9ce0cbf --- /dev/null +++ b/frontend/src/components/modal/searchID.vue @@ -0,0 +1,178 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/AdminNmPop.vue b/frontend/src/modules/custMgt/components/AdminNmPop.vue new file mode 100644 index 0000000..d79bb24 --- /dev/null +++ b/frontend/src/modules/custMgt/components/AdminNmPop.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/frontend/src/modules/custMgt/components/CarryOverListPop.vue b/frontend/src/modules/custMgt/components/CarryOverListPop.vue new file mode 100644 index 0000000..285ce90 --- /dev/null +++ b/frontend/src/modules/custMgt/components/CarryOverListPop.vue @@ -0,0 +1,129 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue b/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue new file mode 100644 index 0000000..8757d17 --- /dev/null +++ b/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue @@ -0,0 +1,255 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/MemberDetailList.vue b/frontend/src/modules/custMgt/components/MemberDetailList.vue new file mode 100644 index 0000000..f8a4d9b --- /dev/null +++ b/frontend/src/modules/custMgt/components/MemberDetailList.vue @@ -0,0 +1,89 @@ + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/SearchIdPopup.vue b/frontend/src/modules/custMgt/components/SearchIdPopup.vue new file mode 100644 index 0000000..aa1b82c --- /dev/null +++ b/frontend/src/modules/custMgt/components/SearchIdPopup.vue @@ -0,0 +1,144 @@ + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/SubsRegPop.vue b/frontend/src/modules/custMgt/components/SubsRegPop.vue new file mode 100644 index 0000000..ea3f572 --- /dev/null +++ b/frontend/src/modules/custMgt/components/SubsRegPop.vue @@ -0,0 +1,227 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/TestIdRegPop.vue b/frontend/src/modules/custMgt/components/TestIdRegPop.vue new file mode 100644 index 0000000..ea3f572 --- /dev/null +++ b/frontend/src/modules/custMgt/components/TestIdRegPop.vue @@ -0,0 +1,227 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue b/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue new file mode 100644 index 0000000..010d8be --- /dev/null +++ b/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue @@ -0,0 +1,395 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/router/index.js b/frontend/src/modules/custMgt/router/index.js index c25d572..75ddf8d 100644 --- a/frontend/src/modules/custMgt/router/index.js +++ b/frontend/src/modules/custMgt/router/index.js @@ -1,13 +1,15 @@ -import CustList from '../views/CustList' +import SubsList from '../views/SubsList' import MemberList from '../views/MemberList' import SubsDetail from '../views/SubsDetail' import MemberDetail from '../views/MemberDetail' +import MemberAdminDetail from '../views/MemberAdminDetail' export default [ { path: '/custMgt/subsList', - component: CustList, - name: 'subsList', + component: SubsList, + name: 'subsList', + props: true, meta: { public: true } }, { @@ -19,15 +21,24 @@ export default [ { path: '/custMgt/subsDetail', component: SubsDetail, - name: 'subsDetail', + name: 'subsDetail', + props: true, meta: { public: true } }, { path: '/custMgt/memberDetail', component: MemberDetail, - name: 'memberDetail', + name: 'memberDetail', + props: true, meta: { public: true } }, - + { + path: '/custMgt/memberAdminDetail', + component: MemberAdminDetail, + name: 'memberAdminDetail', + props: true, + meta: { public: true } + }, + ] diff --git a/frontend/src/modules/custMgt/service/custMgtApi.js b/frontend/src/modules/custMgt/service/custMgtApi.js new file mode 100644 index 0000000..91ab97e --- /dev/null +++ b/frontend/src/modules/custMgt/service/custMgtApi.js @@ -0,0 +1,79 @@ +import httpClient from '@/common/http-client'; +import subsExcelHeader from './mock/subsExcelHeader'; +import carryOverExcelHeader from './mock/carryOverExcelHeader'; +import sampleExcelHeader from './mock/sampleExcelHeader'; + +// 공통 코드. +const getCommCode = (params) => { + return httpClient.post('/api/v1/bo/comm/getCode', params, { withCredentials: false }); +} + +// 청약정보 상세조회 +const subsDetail = (params) => { + return httpClient.post('/api/v1/bo/custMgt/subsDetail', params, { withCredentials: false}); +} + +// 이월금액 목록 조회 +const carryOverList = (params) => { + return httpClient.post('/api/v1/bo/custMgt/carryOverList', params, { withCredentials: false}); +} + +// 청약정보 엑셀다운로드 목록 조회 +const subsListExcel = (params) => { + return httpClient.post('/api/v1/bo/custMgt/subsListExcel', params); +} + +// 사용자 상세 정보 조회. +const memberDetail = (params) => { + return httpClient.post('/api/v1/bo/custMgt/memberDetail', params); +} + +// 관리자 상세 정보 조회. +const memberAdminDetail = (params) => { + return httpClient.post('/api/v1/bo/custMgt/memberAdminDetail', params); +} + +// 관리자명(마당ID) 조회 +const selectSearchMadangId = (params) => { + return httpClient.post('/api/v1/bo/custMgt/adminInfo', params); +} + +// 청약정보 관리자명/관리자ID 수정 +const updateAdminInfo = (params) => { + return httpClient.post('/api/v1/bo/custMgt/updateAdminInfo', params); +} + + +const getExcelHeader = category => { + // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다. + return new Promise(function(resolve, reject) { + let header = []; + switch (category) { + case 'SUBS': + header = subsExcelHeader.header; + break; + case 'CARRY': + header = carryOverExcelHeader.header; + break; + case 'SAMPLE': + header = sampleExcelHeader.header; + break; + default: + header = ''; + break; + } + resolve(header); + }); +}; + +export default { + getCommCode, + subsDetail, + carryOverList, + getExcelHeader, + subsListExcel, + memberDetail, + memberAdminDetail, + selectSearchMadangId, + updateAdminInfo, +} diff --git a/frontend/src/modules/custMgt/service/mixins.js b/frontend/src/modules/custMgt/service/mixins.js new file mode 100644 index 0000000..bb02c86 --- /dev/null +++ b/frontend/src/modules/custMgt/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/custMgt/service/mock/carryOverExcelHeader.json b/frontend/src/modules/custMgt/service/mock/carryOverExcelHeader.json new file mode 100644 index 0000000..5e11189 --- /dev/null +++ b/frontend/src/modules/custMgt/service/mock/carryOverExcelHeader.json @@ -0,0 +1,26 @@ +{ + "header": [ + [ + { + "key": "date", + "name": "날짜" + }, + { + "key": "startAmount", + "name": "시작금액" + }, + { + "key": "useAmount", + "name": "사용금액" + }, + { + "key": "krrrAmount", + "name": "이월금액" + }, + { + "key": "extshAmount", + "name": "소멸금액" + } + ] + ] +} diff --git a/frontend/src/modules/custMgt/service/mock/sampleExcelHeader.json b/frontend/src/modules/custMgt/service/mock/sampleExcelHeader.json new file mode 100644 index 0000000..7e70398 --- /dev/null +++ b/frontend/src/modules/custMgt/service/mock/sampleExcelHeader.json @@ -0,0 +1,50 @@ +{ + "header": [ + [ + { + "key": "id", + "name": "ID" + }, + { + "key": "userNm", + "name": "이름" + }, + { + "key": "mdn", + "name": "휴대폰번호" + }, + { + "key": "email", + "name": "이메일" + }, + { + "key": "stat", + "name": "ID잠금" + } + ] + ], + "body": [ + [ + { + "key": "id", + "name": "" + }, + { + "key": "userNm", + "name": "" + }, + { + "key": "mdn", + "name": "" + }, + { + "key": "email", + "name": "" + }, + { + "key": "stat", + "name": "" + } + ] + ] +} diff --git a/frontend/src/modules/custMgt/service/mock/subsExcelHeader.json b/frontend/src/modules/custMgt/service/mock/subsExcelHeader.json new file mode 100644 index 0000000..d72b01c --- /dev/null +++ b/frontend/src/modules/custMgt/service/mock/subsExcelHeader.json @@ -0,0 +1,42 @@ +{ + "header": [ + [ + { + "key": "no", + "name": "NO" + }, + { + "key": "serviceId", + "name": "서비스 ID (관리자 ID)" + }, + { + "key": "custNm", + "name": "고객사명" + }, + { + "key": "regNo", + "name": "가입번호" + }, + { + "key": "regDt", + "name": "가입일" + }, + { + "key": "stat", + "name": "상태" + }, + { + "key": "", + "name": "유치채널" + }, + { + "key": "plan", + "name": "요금제" + }, + { + "key": "carryOver", + "name": "이월누적금액" + } + ] + ] +} diff --git a/frontend/src/modules/custMgt/views/CustList.vue b/frontend/src/modules/custMgt/views/CustList.vue deleted file mode 100644 index a90a923..0000000 --- a/frontend/src/modules/custMgt/views/CustList.vue +++ /dev/null @@ -1,285 +0,0 @@ - - - \ No newline at end of file diff --git a/frontend/src/modules/custMgt/views/MemberAdminDetail.vue b/frontend/src/modules/custMgt/views/MemberAdminDetail.vue new file mode 100644 index 0000000..7c6b4ff --- /dev/null +++ b/frontend/src/modules/custMgt/views/MemberAdminDetail.vue @@ -0,0 +1,234 @@ + + + \ No newline at end of file diff --git a/frontend/src/modules/custMgt/views/MemberDetail.vue b/frontend/src/modules/custMgt/views/MemberDetail.vue index 9787ec3..a12a964 100644 --- a/frontend/src/modules/custMgt/views/MemberDetail.vue +++ b/frontend/src/modules/custMgt/views/MemberDetail.vue @@ -1,165 +1,163 @@ \ No newline at end of file diff --git a/frontend/src/modules/custMgt/views/MemberList.vue b/frontend/src/modules/custMgt/views/MemberList.vue index 3253cc3..d258fbd 100644 --- a/frontend/src/modules/custMgt/views/MemberList.vue +++ b/frontend/src/modules/custMgt/views/MemberList.vue @@ -3,163 +3,289 @@
-

회원목록조회

- +

청약고객관리

+
-
+ + + +
-
- - +
+
+ + +
-
+
- + +
-
- - +
+ + +
+
+
+
+ +
- - + +
+
- -
- -
-
100
-
- - -
- -
- -
+ +
+
{{ totalItems }}건 +
+ +
+
+
+ +
+ +
+
+ +
+ + +
+ \ No newline at end of file diff --git a/frontend/src/modules/custMgt/views/SubsDetail.vue b/frontend/src/modules/custMgt/views/SubsDetail.vue index 60d3d12..880c3ab 100644 --- a/frontend/src/modules/custMgt/views/SubsDetail.vue +++ b/frontend/src/modules/custMgt/views/SubsDetail.vue @@ -1,165 +1,381 @@ \ No newline at end of file diff --git a/frontend/src/modules/custMgt/views/SubsList.vue b/frontend/src/modules/custMgt/views/SubsList.vue new file mode 100644 index 0000000..2c432e8 --- /dev/null +++ b/frontend/src/modules/custMgt/views/SubsList.vue @@ -0,0 +1,325 @@ + + + \ No newline at end of file diff --git a/frontend/src/modules/login/views/LoginAuth.vue b/frontend/src/modules/login/views/LoginAuth.vue index 6e107ff..4dbb4f9 100644 --- a/frontend/src/modules/login/views/LoginAuth.vue +++ b/frontend/src/modules/login/views/LoginAuth.vue @@ -49,6 +49,13 @@ //import * as utils from '@/common/utils'; export default { + name: 'Params', + props: { + userId: { + type: String, + default : '' + } + }, data: function() { return { errors: [], @@ -116,6 +123,7 @@ // 2차 인증번호 요청 authNum(){ var vm = this; + let userId = vm.$route.params.userId; if(!this.isLogin){ vm.$store.commit("login/isLogin", false); vm.$store.commit("login/isAuthChk", false); @@ -127,7 +135,7 @@ return false; } var params = { - "oprtrId": this.userId, + "oprtrId": userId, "hpNo": this.mdn, "isLogin" : this.isLogin } @@ -156,6 +164,7 @@ // 2차 인증 확인 ajaxAuth: function(){ var vm = this; + let userId = vm.$route.params.userId; if (!vm.formCheck()){ alert(vm.errors[0]); return false; @@ -168,7 +177,7 @@ var params = { - "oprtrId": this.userId, + "oprtrId": userId, "hpNo": this.mdn, "chrVal": this.confirmNum, "isLogin": this.isLogin, diff --git a/frontend/src/modules/login/views/LoginMain.vue b/frontend/src/modules/login/views/LoginMain.vue index 4940e48..d3c2960 100644 --- a/frontend/src/modules/login/views/LoginMain.vue +++ b/frontend/src/modules/login/views/LoginMain.vue @@ -96,6 +96,7 @@ if (!vm.formCheck()) return false; + let oprtrId = this.userId; let oprtrPw = this.userPwd; // FormData 객체를 파라미터로 넘기면 Content-Type: multipart/form-data; 요청을 한다. @@ -108,14 +109,14 @@ api.login(params).then(function(response) { var rsp = response.data; - + if(rsp.retCode == '0000'){ var path = rsp.data.nextUrl; console.log(path); vm.chgChkUserId(); vm.$store.commit("login/isLogin", true); vm.$store.commit("login/savePwd", oprtrPw); - vm.$router.push({ path: '/view/login/auth'}); + vm.$router.push({ name: 'loginAuth',params: {userId : oprtrId}}); } else if(rsp.retCode == '4004') { // ID/PWD 불일치 vm.errors.push('로그인 실패하였습니다. (5회 실패 시 계정 잠김)'); vm.ModalOpen('modal01'); diff --git a/frontend/src/modules/login/views/ResetPassword.vue b/frontend/src/modules/login/views/ResetPassword.vue index 8ff8d92..ef47436 100644 --- a/frontend/src/modules/login/views/ResetPassword.vue +++ b/frontend/src/modules/login/views/ResetPassword.vue @@ -86,12 +86,16 @@ export default { //vm.$store.commit("login/isAuthChk", true); vm.ModalOpen('modal12'); - // vm.$router.push({ path : 'view/login'}); + //vm.$router.push({ path : 'view/login'}); + } else if(rsp.retCode == '4003') { vm.ModalOpen('modal13'); } else { return; } + document.getElementsByClassName('modal12')[0].getElementsByClassName('btn-pcolor')[0].addEventListener('click',() => { + vm.$router.push({path: '/login'}); + }); }); } , diff --git a/frontend/src/modules/login/views/UpdatePassword.vue b/frontend/src/modules/login/views/UpdatePassword.vue index 340d548..462388f 100644 --- a/frontend/src/modules/login/views/UpdatePassword.vue +++ b/frontend/src/modules/login/views/UpdatePassword.vue @@ -8,11 +8,11 @@

임시비밀번호로 로그인할 경우 비밀번호를 변경 후
서비스 이용이 가능합니다.

    -
    +
    - +
    -
    +
@@ -25,6 +25,7 @@ \ No newline at end of file diff --git a/frontend/src/modules/sysMgt/AdminList.vue b/frontend/src/modules/sysMgt/AdminList.vue deleted file mode 100644 index 6dfaacf..0000000 --- a/frontend/src/modules/sysMgt/AdminList.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - \ No newline at end of file diff --git a/frontend/src/modules/sysMgt/AuthList.vue b/frontend/src/modules/sysMgt/AuthList.vue deleted file mode 100644 index 13509eb..0000000 --- a/frontend/src/modules/sysMgt/AuthList.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - \ No newline at end of file diff --git a/frontend/src/modules/sysMgt/components/AdminDetailPop.vue b/frontend/src/modules/sysMgt/components/AdminDetailPop.vue index 5e5a2df..229c7d9 100644 --- a/frontend/src/modules/sysMgt/components/AdminDetailPop.vue +++ b/frontend/src/modules/sysMgt/components/AdminDetailPop.vue @@ -57,14 +57,10 @@ 상태 - - - - + + + + @@ -105,7 +101,7 @@ export default { mdn:'', email:'', auth:'', - stat: '', + stat: "", userNm:"", userPwd1:"", userPwd2:"", @@ -120,6 +116,7 @@ export default { created(){ //this.formReset(); this.setAuthData(); + this.formReset(); }, methods :{ doPwdValidate(){ @@ -194,7 +191,7 @@ export default { }, // 모달 끄기 adminDetailModalClose(){ - this.formReset(); + //this.formReset(); var dimmed = document.getElementsByClassName('modal21'); for(var i = 0; i < dimmed.length; i++){ dimmed[i].style.display = 'none'; @@ -225,7 +222,9 @@ export default { }); }, formReset(){ - this.$refs.adminDetailForm.reset(); + var type= this.insertType; + Object.assign(this.$data, this.$options.data()); + this.insertType = type; }, } } diff --git a/frontend/src/modules/sysMgt/components/AdminRegPop.vue b/frontend/src/modules/sysMgt/components/AdminRegPop.vue index c9a2d7d..c09609a 100644 --- a/frontend/src/modules/sysMgt/components/AdminRegPop.vue +++ b/frontend/src/modules/sysMgt/components/AdminRegPop.vue @@ -16,7 +16,7 @@ 마당 ID - + @@ -74,6 +74,9 @@
+ + +
@@ -82,7 +85,9 @@ import api from '@/service/api'; import sysMgtApi from "../service/sysMgtApi.js"; import { utils_mixin, chkPattern2 } from '../service/mixins'; +import SearchIdPopup from '../components/SearchIdPopup.vue'; import lodash from "lodash"; +// searchIdPopModal export default { name: "adminRegPop", @@ -107,7 +112,12 @@ export default { userPwd1:"", userPwd2:"", code:"", + idCheck: false, + props: {}, } + }, + components: { + SearchIdPopup, }, model: { prop: 'sendData', @@ -115,8 +125,9 @@ export default { }, props: ['sendData'], created(){ - this.formReset(); + //this.formReset(); this.setAuthData(); + this.formReset(); }, methods :{ doPwdValidate(){ @@ -153,6 +164,11 @@ export default { return true; }, doValidate(){ + if(!this.idCheck){ + alert("유효한 마당ID가 아닙니다."); + this.$refs.madangId.focus(); + return false; + } if(!this.doPwdValidate()){ return false; } @@ -205,8 +221,81 @@ export default { this.row.stat=this.stat; return true; }, + // 마당ID 조회 + async searchMadangId(){ + + if(!this.madangId){ + alert('마당ID를 입력해주세요'); + this.$refs.madangId.focus(); + return false; + } + var params = { + "madangId": this.madangId + } + console.log(this.madangId); + + try { + const response = await sysMgtApi.selectSearchMadangId(params); + const result = response.data; + console.log(result); + if (result != null && result.retCode == "0000") { + this.madangId = result.data.madangId; + this.userNm = result.data.name; + this.email = result.data.email; + this.mdn = result.data.mdn; + + // 마당ID조회 성공 팝업노출 + this.searchIdPop(); + //console.log(this.userNm); + + this.idCheck = true; + this.$refs._pwd1.focus(); + + }else if(result.retCode == '1004'){ + //alert('마당ID 정보가 없습니다.'); + this.searchIdFailPop(); + this.idCheck = false; + this.$refs.madangId.focus(); + return false; + }else { + //alert('마당ID 조회에 실패하였습니다.'); + this.searchIdFailPop(); + this.idCheck = false; + this.$refs.madangId.focus(); + return false; + } + } catch(err) { + //alert("실패 하였습니다."); + this.searchIdFailPop(); + this.idCheck = false; + this.$refs.madangId.focus(); + return false; + } + + }, + searchIdPop(){ + //alert('마당ID 조회 성공 팝업이동 ->'); + var params = { + "madangId": this.madangId, + "userNm": this.userNm, + "email": this.email, + "mdn": this.mdn + } + this.$refs.searchIdPopModal.searchIdPop(params); + }, + searchIdFailPop(){ + //alert('마당ID 조회 실패 팝업이동 ->'); + this.$refs.searchIdPopModal.searchIdFailPop(); + }, + resetRegPop(){ + this.formReset(); + this.$refs.madangId.focus(); + }, + + // 모달 띄우기 ModalOpen(insertType){ + this.formReset(); this.insertType=insertType; var dimmed = document.getElementsByClassName('dimmed'); dimmed[0].style.display = 'block'; @@ -217,7 +306,6 @@ export default { }, // 모달 끄기 ModalClose(){ - this.formReset(); var dimmed = document.getElementsByClassName('dimmed'); dimmed[0].style.display = 'none'; var wrap = document.getElementsByClassName('popup-wrap'); @@ -252,7 +340,9 @@ export default { }); }, formReset(){ - this.$refs.adminRegForm.reset(); + var type= this.insertType; + Object.assign(this.$data, this.$options.data()); + this.insertType = type; }, } } diff --git a/frontend/src/modules/sysMgt/components/SearchIdPopup.vue b/frontend/src/modules/sysMgt/components/SearchIdPopup.vue new file mode 100644 index 0000000..38f2c79 --- /dev/null +++ b/frontend/src/modules/sysMgt/components/SearchIdPopup.vue @@ -0,0 +1,164 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/modules/sysMgt/router/index.js b/frontend/src/modules/sysMgt/router/index.js index 6ed10d2..89fc0de 100644 --- a/frontend/src/modules/sysMgt/router/index.js +++ b/frontend/src/modules/sysMgt/router/index.js @@ -1,5 +1,7 @@ import AustList from '../views/AuthList' import AdminList from '../views/AdminList' +import AuthAdd from '../views/AuthAdd' +import AuthModify from '../views/AuthModify' export default [ { @@ -13,6 +15,19 @@ export default [ component: AdminList, name: 'adminList', meta: { public: true } + }, + { + path: '/sysMgt/authAdd', + component: AuthAdd, + name: 'authAdd', + meta: { public: true } + }, + { + path: '/sysMgt/authModify', + component: AuthModify, + name: 'authModify', + props: true, + meta: { public: true } } ] diff --git a/frontend/src/modules/sysMgt/service/sysMgtApi.js b/frontend/src/modules/sysMgt/service/sysMgtApi.js index 08163a7..6126b53 100644 --- a/frontend/src/modules/sysMgt/service/sysMgtApi.js +++ b/frontend/src/modules/sysMgt/service/sysMgtApi.js @@ -1,5 +1,23 @@ import httpClient from '@/common/http-client'; +// 공통 코드. +const getCommCode = (params) => { + return httpClient.post('/api/v1/bo/comm/getCode', params, { withCredentials: false }); +} + +// 관리자정보 상세조회 +const selectAdminDetail = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/adminDetail', params, { withCredentials: false}); +} +//마당아이디 조회 +const selectSearchMadangId = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/madangId', params, {withCredentials: false}); +} +//권한 상세 조회 +const selectAuthDetail = (params) => { + return httpClient.params('/api/v1/bo/sysMgt/authDetail', params, {withCredentials: false}); +} + // HUBEZ_BO_API_4003 - 관리자 등록. const insertAdmin = (params) => { return httpClient.post('/api/v1/bo/sysMgt/insertAdmin', params, { withCredentials: false }); @@ -20,9 +38,44 @@ const adminDetail = (params) => { return httpClient.post('/api/v1/bo/sysMgt/adminDetail', params, { withCredentials: false }); } +// HUBEZ_BO_API_4007 - 권한 목록 조회. +const authList = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/authList', params, { withCredentials: false }); +} + +// HUBEZ_BO_API_4008 - 권한 삭제. +const deleteAuth = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/deleteAuth', params, { withCredentials: false }); +} + +// HUBEZ_BO_API_4009 - 권한 상세 조회. +const authDetail = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/authDetail', params, { withCredentials: false }); +} + +// HUBEZ_BO_API_4010 - 권한 추가. +const insertAuth = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/insertAuth', params, { withCredentials: false }); +} + +// HUBEZ_BO_API_4011 - 권한 수정. +const updateAuth = (params) => { + return httpClient.post('/api/v1/bo/sysMgt/updateAuth', params, { withCredentials: false }); +} + export default { insertAdmin, updateAdmin, deleteAdmin, - adminDetail + adminDetail, + selectAdminDetail, + getCommCode, + selectSearchMadangId, + selectAuthDetail, + authList, + deleteAuth, + authDetail, + insertAuth, + updateAuth, + } diff --git a/frontend/src/modules/sysMgt/views/AdminList.vue b/frontend/src/modules/sysMgt/views/AdminList.vue index 6dfaacf..5342767 100644 --- a/frontend/src/modules/sysMgt/views/AdminList.vue +++ b/frontend/src/modules/sysMgt/views/AdminList.vue @@ -119,14 +119,14 @@ export default { columns: [ { name: 'no', header: 'No', align: 'center', width: 60}, { name: 'auth', header: '권한', align: 'center', width: 160 }, - { name: 'name', header: '이름(대리점명)', align: 'center', width: 130, renderer: { + { name: 'name', header: '이름(대리점명)', align: 'center', width: 130}, + { name: 'adminId', header: 'ID', align: 'center', width: 130, renderer: { type: CustomATagRenderer , options: { callback: this.detailPop, } } }, - { name: 'adminId', header: 'ID', align: 'center', width: 130}, { name: 'adminStat', header: '상태', align: 'center', width: 130, cls: 'td_line'}, { name: 'regDt', header: '등록일', align: 'center', width: 130} ], @@ -146,7 +146,7 @@ export default { // SystemPopup, AdminRegPop, //AdminReg2Pop, - AdminDetailPop + AdminDetailPop, }, created(){ this.$store.commit("login/isLogin", true); diff --git a/frontend/src/modules/sysMgt/views/AuthAdd.vue b/frontend/src/modules/sysMgt/views/AuthAdd.vue new file mode 100644 index 0000000..064a44b --- /dev/null +++ b/frontend/src/modules/sysMgt/views/AuthAdd.vue @@ -0,0 +1,304 @@ + + + \ No newline at end of file diff --git a/frontend/src/modules/sysMgt/views/AuthList.vue b/frontend/src/modules/sysMgt/views/AuthList.vue index 13509eb..a93f118 100644 --- a/frontend/src/modules/sysMgt/views/AuthList.vue +++ b/frontend/src/modules/sysMgt/views/AuthList.vue @@ -6,9 +6,9 @@
-
4
+
{{totalCnt}}
- +
@@ -32,6 +32,18 @@ + + {{ option.no }} + {{ option.authCd }} + {{ option.authNm }} + {{ option.authStat }} + {{ option.regDt }} + + + + + +
@@ -84,15 +64,23 @@ \ No newline at end of file diff --git a/frontend/src/modules/sysMgt/views/AuthModify.vue b/frontend/src/modules/sysMgt/views/AuthModify.vue new file mode 100644 index 0000000..1e7732b --- /dev/null +++ b/frontend/src/modules/sysMgt/views/AuthModify.vue @@ -0,0 +1,338 @@ + + + \ No newline at end of file diff --git a/frontend/src/router.js b/frontend/src/router.js index 91c1f36..6a12142 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -10,7 +10,7 @@ import loginRoutes from './modules/login/router'; import custRoutes from './modules/custMgt/router'; import authRoutes from './modules/sysMgt/router'; -import custList from './modules/custMgt/views/CustList'; +import subsList from './modules/custMgt/views/SubsList'; import channelRoutes from './modules/attractMgt/router'; import rejectRoutes from './modules/servMgt/router'; import clacRoutes from './modules/calculate/router'; @@ -33,7 +33,7 @@ const router = new Router({ children: [ { path: '', - component: custList + component: subsList }, // { // path: '/attractMgt/views', diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtController.java b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtController.java index d681be3..2e07139 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtController.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtController.java @@ -8,8 +8,12 @@ package kr.co.uplus.ez.api.custMgt; import java.util.Map; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +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.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -21,9 +25,24 @@ import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; 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.AllMemoListReqDto; +import kr.co.uplus.ez.api.custMgt.dto.AllMemoListResDto; import kr.co.uplus.ez.api.custMgt.dto.CarryOverListReqDto; import kr.co.uplus.ez.api.custMgt.dto.CarryOverListResDto; +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.InsertMassUserReqDto; +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.MemberAdminDetailResDto; import kr.co.uplus.ez.api.custMgt.dto.MemberDetailReqDto; +import kr.co.uplus.ez.api.custMgt.dto.MemberDetailResDto; import kr.co.uplus.ez.api.custMgt.dto.MemberListReqDto; import kr.co.uplus.ez.api.custMgt.dto.MemberListResDto; import kr.co.uplus.ez.api.custMgt.dto.SubsDetailReqDto; @@ -32,6 +51,12 @@ 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.SubsListResDto; +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.UpdateUserReqDto; +import kr.co.uplus.ez.api.custMgt.dto.UpdateUserResDto; +import kr.co.uplus.ez.common.components.ValidComponents; +import kr.co.uplus.ez.common.data.ApiResponseCode; import kr.co.uplus.ez.common.data.ApiResponseMessage; /** @@ -44,9 +69,14 @@ import kr.co.uplus.ez.common.data.ApiResponseMessage; @RequestMapping(value = "api/v1/bo/custMgt") public class CustMgtController { + private static final Logger logger = LoggerFactory.getLogger(CustMgtController.class); + @Autowired CustMgtService custService; + @Autowired + ValidComponents validComponents; + /** * date : 2022. 4. 25. * auth : ckr @@ -54,7 +84,7 @@ public class CustMgtController { * * @param subsListReqDto * @return SubsListResDto - * @throws Exception + * @ */ @ApiOperation(value = "subsList", notes = "청약 고객 정보 목록 조회") @ApiResponses({ @@ -62,7 +92,10 @@ public class CustMgtController { }) @RequestMapping(value = "/subsList" , method = {RequestMethod.POST}) @ResponseBody - public SubsListResDto subsList(@RequestBody SubsListReqDto subsListReqDto) throws Exception{ + public SubsListResDto subsList(@RequestBody @Valid SubsListReqDto subsListReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new SubsListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } return custService.subsList(subsListReqDto); } @@ -73,11 +106,20 @@ public class CustMgtController { * * @param subsListExcelReqDto * @return SubsListExcelResDto - * @throws Exception + * @ */ + @ApiOperation(value = "subsListExcel", notes = "청약 고객 정보 목록 엑셀 다운로드") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/subsListExcel" , method = {RequestMethod.POST}) @ResponseBody - public SubsListExcelResDto subsListExcel(@RequestBody SubsListExcelReqDto subsListExcelReqDto) throws Exception{ + public SubsListExcelResDto subsListExcel(@RequestBody @Valid SubsListExcelReqDto subsListExcelReqDto, BindingResult bindingResult) { + + if(validComponents.validParameter(bindingResult)) { + return new SubsListExcelResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.subsListExcel(subsListExcelReqDto); } @@ -88,11 +130,20 @@ public class CustMgtController { * * @param subsDetailReqDto * @return SubsDetailResDto - * @throws Exception + * @ */ + @ApiOperation(value = "subsDetail", notes = "청약 정보 상세 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/subsDetail" , method = {RequestMethod.POST}) @ResponseBody - public SubsDetailResDto subsDetail(@RequestBody SubsDetailReqDto subsDetailReqDto) throws Exception{ + public SubsDetailResDto subsDetail(@RequestBody @Valid SubsDetailReqDto subsDetailReqDto, BindingResult bindingResult) { + + if(validComponents.validParameter(bindingResult)) { + return new SubsDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.subsDetail(subsDetailReqDto); } @@ -102,14 +153,38 @@ public class CustMgtController { * desc : 관리자명 조회 * @param adminInfoReqDto * @return AdminInfoResDto - * @throws Exception + * @ */ @RequestMapping(value = "/adminInfo" , method = {RequestMethod.POST}) @ResponseBody - public AdminInfoResDto adminInfo(@RequestBody AdminInfoReqDto adminInfoReqDto) throws Exception{ + public AdminInfoResDto adminInfo(@RequestBody @Valid AdminInfoReqDto adminInfoReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new AdminInfoResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } return custService.adminInfo(adminInfoReqDto); } + /** + * date : 2022. 4. 25. + * auth : ckr + * desc : 관리자ID, 관리자명 수정 + * @param adminInfoReqDto + * @return AdminInfoResDto + * @ + */ + @ApiOperation(value = "updateAdminInfo", notes = "관리자 정보 수정") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value = "/updateAdminInfo" , method = {RequestMethod.POST}) + @ResponseBody + public UpdateAdminInfoResDto updateAdminInfo(@RequestBody @Valid UpdateAdminInfoReqDto updateAdminInfoReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new UpdateAdminInfoResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.updateAdminInfo(updateAdminInfoReqDto); + } + /** * date : 2022. 4. 25. * auth : ckr @@ -117,11 +192,18 @@ public class CustMgtController { * * @param carryOverListReqDto * @return CarryOverListResDto - * @throws Exception + * @ */ + @ApiOperation(value = "carryOverList", notes = "이월금액 목록 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/carryOverList" , method = {RequestMethod.POST}) @ResponseBody - public CarryOverListResDto carryOverList(@RequestBody CarryOverListReqDto carryOverListReqDto) throws Exception{ + public CarryOverListResDto carryOverList(@RequestBody @Valid CarryOverListReqDto carryOverListReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new CarryOverListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } return custService.carryOverList(carryOverListReqDto); } @@ -131,11 +213,18 @@ public class CustMgtController { * desc : 회원목록조회 * @param memberListReqDto * @return MemberListResDto - * @throws Exception + * @ */ + @ApiOperation(value = "memberList", notes = "회원목록조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/memberList" , method = {RequestMethod.POST}) @ResponseBody - public MemberListResDto memberList(@RequestBody MemberListReqDto memberListReqDto) throws Exception{ + public MemberListResDto memberList(@RequestBody @Valid MemberListReqDto memberListReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new MemberListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } return custService.memberList(memberListReqDto); } @@ -145,26 +234,59 @@ public class CustMgtController { * desc : 회원 정보 상세 조회 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "memberDetail", notes = "회원 정보 상세 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/memberDetail" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage memberDetail(@RequestBody MemberDetailReqDto memberDetailReqDto) throws Exception{ + public MemberDetailResDto memberDetail(@RequestBody @Valid MemberDetailReqDto memberDetailReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new MemberDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } return custService.memberDetail(memberDetailReqDto); } + + /** + * @param memberDetailListReqDto + * @param bindingResult + * @return MemberDetailListResDto + */ + @ApiOperation(value = "memberAdminDetail", notes = "회원 정보(관리자) 상세 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value = "/memberAdminDetail" , method = {RequestMethod.POST}) + @ResponseBody + public MemberAdminDetailResDto memberAdminDetail(@RequestBody @Valid MemberAdminDetailReqDto memberAdminDetailReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new MemberAdminDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.memberAdminDetail(memberAdminDetailReqDto); + } + /** * date : 2022. 4. 25. * auth : ckr * desc : 테스트ID 등록 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "insertTestId", notes = "테스트ID 등록") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/insertTestId" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage insertTestId(@RequestBody Map paramMap) throws Exception{ - return custService.insertTestId(paramMap); + public InsertTestIdResDto insertTestId(@RequestBody @Valid InsertTestIdReqDto insertTestIdReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new InsertTestIdResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.insertTestId(insertTestIdReqDto); } /** @@ -173,12 +295,19 @@ public class CustMgtController { * desc : 전체 메모 목록 조회 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "allMemoList", notes = "전체 메모 목록 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/allMemoList" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage allMemoList(@RequestBody Map paramMap) throws Exception{ - return custService.allMemoList(paramMap); + public AllMemoListResDto allMemoList(@RequestBody @Valid AllMemoListReqDto allMemoListReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new AllMemoListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.allMemoList(allMemoListReqDto); } /** @@ -187,12 +316,19 @@ public class CustMgtController { * desc : 메모 삭제 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "deleteMemo", notes = "메모 삭제") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/deleteMemo" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage deleteMemo(@RequestBody Map paramMap) throws Exception{ - return custService.deleteMemo(paramMap); + public DeleteMemoResDto deleteMemo(@RequestBody @Valid DeleteMemoReqDto deleteMemoReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new DeleteMemoResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.deleteMemo(deleteMemoReqDto); } /** @@ -201,12 +337,19 @@ public class CustMgtController { * desc : 사용자 정보 등록 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "insertUser", notes = "사용자 정보 등록") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/insertUser" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage insertUser(@RequestBody Map paramMap) throws Exception{ - return custService.insertUser(paramMap); + public InsertUserResDto insertUser(@RequestBody @Valid InsertUserReqDto insertUserReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new InsertUserResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.insertUser(insertUserReqDto); } /** @@ -215,12 +358,19 @@ public class CustMgtController { * desc : 사용자 정보 수정 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "updateUser", notes = "사용자 정보 수정") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/updateUser" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage updateUser(@RequestBody Map paramMap) throws Exception{ - return custService.updateUser(paramMap); + public UpdateUserResDto updateUser(@RequestBody @Valid UpdateUserReqDto updateUserReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new UpdateUserResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.updateUser(updateUserReqDto); } /** @@ -229,12 +379,19 @@ public class CustMgtController { * desc : 사용자ID 대량등록 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "insertMassUser", notes = "사용자ID 대량등록") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/insertMassUser" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage insertMassUser(@RequestBody Map paramMap) throws Exception{ - return custService.insertMassUser(paramMap); + public InsertMassUserResDto insertMassUser(@RequestBody @Valid InsertMassUserReqDto insertMassUserReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new InsertMassUserResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.insertMassUser(insertMassUserReqDto); } /** @@ -243,12 +400,19 @@ public class CustMgtController { * desc : 사용자 정보 삭제 * @param paramMap * @return - * @throws Exception + * @ */ + @ApiOperation(value = "/deleteUser", notes = "사용자 정보 수정") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) @RequestMapping(value = "/deleteUser" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage deleteUser(@RequestBody Map paramMap) throws Exception{ - return custService.deleteUser(paramMap); + public DeleteUserResDto deleteUser(@RequestBody @Valid DeleteUserReqDto deleteUserReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new DeleteUserResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.deleteUser(deleteUserReqDto); } /** @@ -257,11 +421,11 @@ public class CustMgtController { * desc : 관리자 정보 수정 * @param paramMap * @return - * @throws Exception + * @ */ @RequestMapping(value = "/updateMember" , method = {RequestMethod.POST}) @ResponseBody - public ApiResponseMessage updateMember(@RequestBody Map paramMap) throws Exception{ + public ApiResponseMessage updateMember(@RequestBody Map paramMap) { return custService.updateMember(paramMap); } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtMapper.java index c5748c9..5d8d09d 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtMapper.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtMapper.java @@ -1,16 +1,94 @@ package kr.co.uplus.ez.api.custMgt; import java.util.List; +import java.util.Map; import org.apache.ibatis.annotations.Mapper; +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.CarryOver; +import kr.co.uplus.ez.api.custMgt.dto.CarryOverListReqDto; +import kr.co.uplus.ez.api.custMgt.dto.CustInfo; +import kr.co.uplus.ez.api.custMgt.dto.DeleteUserReqDto; +import kr.co.uplus.ez.api.custMgt.dto.InsertUserReqDto; +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.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.MemberList; +import kr.co.uplus.ez.api.custMgt.dto.MemberListReqDto; +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.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.SubsListReqDto; +import kr.co.uplus.ez.api.custMgt.dto.SvcUserInfo; +import kr.co.uplus.ez.api.custMgt.dto.UpdateUserReqDto; +import kr.co.uplus.ez.common.data.ImUser; @Mapper public interface CustMgtMapper { + /** 청구정보 카운트 조회.*/ int selectSubsListTotalCnt(SubsListReqDto subsListReqDto); - + /** 청구정보 목록 조회.*/ List selectSubsLists(SubsListReqDto subsListReqDto); + /** 청구정보 엑셀 목록 조회.*/ + List selectSubsListsExcel(SubsListExcelReqDto subsListExcelReqDto); + /** 청구정보 상세 조회.*/ + SubsDetail selectSubsDetailInfo(SubsDetailReqDto subsDetailReqDto); + /** 이월 금액 목록 조회.*/ + List selectCarryOverList(CarryOverListReqDto carryOverListReqDto); + /** 마당ID 조회.*/ + ImUser selectImUser(ImUser imUser); + /** 회원정보 카운트 조회.*/ + int selectSvcUserListTotalCnt(MemberListReqDto memberListReqDto); + /** 회원정보 목록 조회.*/ + List selectSvcUserList(MemberListReqDto memberListReqDto); + /** 회원 상세 조회.*/ + MemberDetailRes selectMemberDetail(MemberDetailReqDto memberDetailReqDto); + /** 회원(관리자) 상세 조회.*/ + MemberAdminDetailRes selectMemberAdminDetail(MemberAdminDetailReqDto memberAdminDetailReqDto); + /** 사용자 아이디 카운트 조회.*/ + int selectMemberDetailListTotalCnt(MemberAdminDetailReqDto memberDetailListReqDto); + /** 사용자 아이디 목록 조회.*/ + List selectMemberDetailList(MemberAdminDetailReqDto memberDetailListReqDto); + /** 사용자 메모 목록 조회.*/ + List selectMemoList(AllMemoListReqDto allMemoListReqDto); + /** 사용자 유무 확인.*/ + int getUserIdCount(String userId); + /** 고객일련번호 조회.*/ + String getCustSeq(String bizrno); + /** 이용자일련번호 조회.*/ + String getUserSeq(); + /** 080인증번호 조회.*/ + String getAuth080(); + + int updateAdminInfo(SubsDetail subDetail); + + int insertUserInfo(InsertUserReqDto insertUserReqDto); + + int selectUserInfoCnt(InsertUserReqDto insertUserReqDto); + + int updateUserInfo(UpdateUserReqDto updateUserReqDto); + + /** 고개정보 유무 조회.*/ + int selectCustInfoCount(String brno); + /** 고객정보 등록.*/ + void insertCustInfo(CustInfo custInfo); + /** 서비스 이용자 등록.*/ + void insertSvcUserInfo(SvcUserInfo svcUserInfo); + /** 청약정보 등록.*/ + void insertSubsInfo(SubsInfo subsInfo); + /** 메모 삭제 */ + int deleteMemo(Map paramMap); + /** UserSeq 조회*/ + int selectUserSeq(String register); + /** 사용자 정보 삭제*/ + int deleteUserList(DeleteUserReqDto deleteUserReqDto); + /** 관리자아이디 조회*/ + int selectAdminId(String adminId); } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java index 0fceec2..e3a6690 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java @@ -1,38 +1,73 @@ package kr.co.uplus.ez.api.custMgt; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.commons.lang3.RandomStringUtils; 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.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.InsertMassUserReqDto; +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.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.DateUtils; +import kr.co.uplus.ez.common.utils.EncryptionUtil; @Service public class CustMgtService { @@ -48,6 +83,37 @@ public class CustMgtService { @Qualifier("sqlSessionTemplateDb2") private SqlSessionTemplate sqlSessionSlave; + /** 요금제. */ + @Value("${testId.prodCd}") + private String prodCd; + /** 생년월일. */ + @Value("${testId.rpsnBday}") + private String rpsnBday; + /** 사업자번호. */ + @Value("${testId.brno}") + private String brno; + /** 법인번호. */ + @Value("${testId.cono}") + private String cono; + /** 우편번호. */ + @Value("${testId.zipCd}") + private String zipCd; + /** 주소. */ + @Value("${testId.badr}") + private String badr; + /** 상세주소. */ + @Value("${testId.dadr}") + private String dadr; + /** 회사명. */ + @Value("${testId.cmpyNm}") + private String cmpyNm; + /** 청구방법. */ + @Value("${testId.paymMthd}") + private String paymMthd; + /** 고객유형코드. */ + @Value("${testId.custTyCd}") + private String custTyCd; + /** * date : 2022. 4. 25. * auth : ckr @@ -59,12 +125,23 @@ public class CustMgtService { CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); + String nowPage = String.valueOf(subsListReqDto.getPage()); int totalCnt = custMgtMapper.selectSubsListTotalCnt(subsListReqDto); + if(totalCnt == 0) { - return new SubsListResDto(ApiResponseCode.CM_NOT_FOUND); + + SubsListRes subsListRes = new SubsListRes(); + subsListRes.setList(new ArrayList<>()); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + subsListRes.setPaging(paging); + + return new SubsListResDto(ApiResponseCode.CM_NOT_FOUND, subsListRes); } - String nowPage = String.valueOf(subsListReqDto.getPage()); + int page = subsListReqDto.getPage(); int pagePerRows = subsListReqDto.getPagePerRows(); @@ -93,38 +170,21 @@ public class CustMgtService { * @return subsListExcelResDto */ public SubsListExcelResDto subsListExcel(SubsListExcelReqDto subsListExcelReqDto) { - SubsListExcelResDto subsListExcelResDto = new SubsListExcelResDto(ApiResponseCode.SUCCESS); - List> dataList = new ArrayList<>(); - Map dataObj = new HashMap<>(); - Map paging = new HashMap<>(); - Map data = new HashMap<>(); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - paging.put(Const.TOTAL_CNT, "5"); - paging.put(Const.CURRENT_PAGE, "1"); - dataObj.put("paging", paging); + SubsListRes subsListRes = new SubsListRes(); + // 청약 고객 정보 엑셀 조회. + List subsLists = custMgtMapper.selectSubsListsExcel(subsListExcelReqDto); - Date now = new Date(); - String nowStr = DateUtils.dateToStr(now, "YYYY-MM-dd"); + // + Paging paging = new Paging(); + paging.setTotalCnt(String.valueOf(subsLists.size())); + subsListRes.setPaging(paging); + subsListRes.setList(subsLists); - for(int i=1; i<=25; i++) { - data = new HashMap<>(); - data.put("no", ""+i); - data.put("serviceId", "Uplus01"); - data.put("custNm", "유플러스"); - data.put("regNo", "1234"+i); - data.put("regDt", nowStr); - data.put("stat", "사용중"); - data.put("channel", "유플러스"); - data.put("plan", "요금제3"); - data.put("carryOver", ""+(100000*i)); - dataList.add(data); - } - - dataObj.put("list", dataList); -// subsListExcelResDto.setData(dataObj); - - return subsListExcelResDto; + // 성공 응답. + return new SubsListExcelResDto(ApiResponseCode.SUCCESS, subsListRes); } /** @@ -135,38 +195,19 @@ public class CustMgtService { * @return subsDetailResDto */ public SubsDetailResDto subsDetail(SubsDetailReqDto subsDetailReqDto) { - SubsDetailResDto subsDetailResDto = new SubsDetailResDto(ApiResponseCode.SUCCESS); - Date now = new Date(); - String nowStr = DateUtils.dateToStr(now, "YYYY-MM-dd"); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - Map data = new HashMap<>(); - data.put("custNm", "유플러스"); - data.put("reprNm", "홍길동"); - data.put("custType", "법인사업자"); - data.put("adr1", "12345"); - data.put("adr2", "서울 마포구 월드컵북로 416"); - data.put("adr3", "유플러스 상암사옥"); - data.put("bRegNo", "1231212345"); - data.put("cprRegNo", "1234561234567"); - data.put("subsDt", nowStr); - data.put("stat", "사용"); - data.put("plan", "요금제1"); - data.put("subsNo", "12345"); - data.put("adminId", "Uplus02"); - data.put("adminNm", "김철수"); - data.put("channelId", "Uplus01"); - data.put("channelNm", "홍길동"); - data.put("serviceId", "uplus01"); - data.put("useAuth", "관리자ID"); - data.put("userNm", "유플러스"); - data.put("mdn", "01012341234"); - data.put("carryOver", "100000"); - data.put("userCnt", "10"); + // 청약정보 상세조회. + SubsDetail subsDetail = custMgtMapper.selectSubsDetailInfo(subsDetailReqDto); -// subsDetailResDto.setData(data); + // 조회 결과 없음. + if(subsDetail == null) { + return new SubsDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } - return subsDetailResDto; + // 성공 응답. + return new SubsDetailResDto(ApiResponseCode.SUCCESS, subsDetail); } /** @@ -177,16 +218,55 @@ public class CustMgtService { * @return adminInfoResDto */ public AdminInfoResDto adminInfo(AdminInfoReqDto adminInfoReqDto) { - AdminInfoResDto adminInfoResDto = new AdminInfoResDto(ApiResponseCode.SUCCESS); - Map data = new HashMap<>(); - data.put("adminId", "uplus01"); - data.put("adminCd", "U00001"); - data.put("adminNm", "홍길동"); - data.put("agencyNm", "lg대리점"); -// result.setData(data); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); + + ImUser param = new ImUser(); + param.setLoginId(adminInfoReqDto.getAdminId()); + // 마당ID 정보 조회. + ImUser imUser = custMgtMapper.selectImUser(param); + + // 조회 결과 없음. + if(imUser == null) { + return new AdminInfoResDto(ApiResponseCode.CM_NOT_FOUND); + } + + AdminInfo adminInfo = new AdminInfo(); + adminInfo.setAdminId(imUser.getLoginId()); + adminInfo.setAdminCd(imUser.getUserCode()); + adminInfo.setAdminNm(imUser.getName()); + // TODO 대리점명 확인 필요. + adminInfo.setAgencyNm(imUser.getName()); + + // 성공 응답. + return new AdminInfoResDto(ApiResponseCode.SUCCESS, adminInfo); + } + + /** + * date : 2022. 4. 25. + * auth : ckr + * desc : 관리자ID,관리자명 수정 + * @param updateAdminInfoReqDto + * @return updateAdminInfoResDto + */ + public UpdateAdminInfoResDto updateAdminInfo(UpdateAdminInfoReqDto adminInfoReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + SubsDetail subsDetail = new SubsDetail(); + subsDetail.setAdminId(adminInfoReqDto.getAdminId()); + subsDetail.setAdminNm(adminInfoReqDto.getAdminNm()); + subsDetail.setServiceId(adminInfoReqDto.getServiceId()); + + try { + custMgtMapper.updateAdminInfo(subsDetail); + } catch (Exception e) { + // TODO: handle exception + return new UpdateAdminInfoResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + // 성공 응답. + return new UpdateAdminInfoResDto(ApiResponseCode.SUCCESS); - return adminInfoResDto; } /** @@ -197,48 +277,19 @@ public class CustMgtService { * @return carryOverListResDto */ public CarryOverListResDto carryOverList(CarryOverListReqDto carryOverListReqDto) { - CarryOverListResDto carryOverListResDto = new CarryOverListResDto(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - Map data = new HashMap<>(); - data.put("date", "2022-03"); - data.put("startAmount", "130000"); - data.put("useAmount", "130000"); - data.put("krrrAmount", "-"); - data.put("extshAmoutn", "-"); - dataList.add(data); + // 이월 금액 조회. + List carryOvers = custMgtMapper.selectCarryOverList(carryOverListReqDto); - data = new HashMap<>(); - data.put("date", "2022-02"); - data.put("startAmount", "80000"); - data.put("useAmount", "-"); - data.put("krrrAmount", "80000"); - data.put("extshAmoutn", "-"); - dataList.add(data); + // 조회 결과 없음. + if(carryOvers == null) { + return new CarryOverListResDto(ApiResponseCode.CM_NOT_FOUND); + } - data = new HashMap<>(); - data.put("date", "2022-01"); - data.put("startAmount", "50000"); - data.put("useAmount", "20000"); - data.put("krrrAmount", "30000"); - data.put("extshAmoutn", "-"); - dataList.add(data); - - data = new HashMap<>(); - data.put("date", "2021-12"); - data.put("startAmount", "50000"); - data.put("useAmount", "50000"); - data.put("krrrAmount", "-"); - data.put("extshAmoutn", "-"); - dataList.add(data); - - dataObj.put("list", dataList); - -// carryOverListResDto.setData(dataObj); - - return carryOverListResDto; + // 성공 응답. + return new CarryOverListResDto(ApiResponseCode.SUCCESS, new CarryOverListRes(carryOvers, String.valueOf(carryOvers.size()))); } /** @@ -249,81 +300,111 @@ public class CustMgtService { * @return memberListResDto */ public MemberListResDto memberList(MemberListReqDto memberListReqDto) { - MemberListResDto memberListResDto = new MemberListResDto(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); - Map paging = new HashMap<>(); - Map data = new HashMap<>(); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - paging.put(Const.TOTAL_CNT, "5"); - paging.put(Const.CURRENT_PAGE, "1"); - dataObj.put("paging", paging); + String nowPage = String.valueOf(memberListReqDto.getPage()); + int totalCnt = custMgtMapper.selectSvcUserListTotalCnt(memberListReqDto); - Date now = new Date(); - String nowStr = DateUtils.dateToStr(now, "YYYY-MM-dd"); - for(int i=1; i<=20; i++) { - data = new HashMap<>(); - data.put("no", ""+i); - data.put("userNm", "홍길동"+i); - data.put("userType", "관리자"); - data.put("adminId", "Uplus0"+i); - data.put("userId", "Uplus0"+i); - data.put("regDt", nowStr); - data.put("userStat", "사용"); - dataList.add(data); + if(totalCnt == 0) { + + MemberListRes memberListRes = new MemberListRes(); + memberListRes.setList(new ArrayList<>()); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + memberListRes.setPaging(paging); + + return new MemberListResDto(ApiResponseCode.CM_NOT_FOUND, memberListRes); } - dataObj.put("list", dataList); -// memberListResDto.setData(dataObj); - return memberListResDto; + int page = memberListReqDto.getPage(); + int pagePerRows = memberListReqDto.getPagePerRows(); + page = (page -1) * pagePerRows; + memberListReqDto.setPage(page); + + List members = custMgtMapper.selectSvcUserList(memberListReqDto); + + MemberListRes memberListRes = new MemberListRes(); + memberListRes.setList(members); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + memberListRes.setPaging(paging); + + return new MemberListResDto(ApiResponseCode.SUCCESS, memberListRes); } /** * date : 2022. 4. 25. * auth : ckr * desc : 회원 정보 상세 조회 - * @param paramMap - * @return + * @param memberDetailReqDto + * @return MemberDetailResDto */ - public ApiResponseMessage memberDetail(MemberDetailReqDto memberDetailReqDto) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); - Map data = new HashMap<>(); + public MemberDetailResDto memberDetail(MemberDetailReqDto memberDetailReqDto) { - data.put("userNm", "유플러스"); - data.put("regDt", "2022-03-06"); - data.put("userType", "관리자ID"); - data.put("userId", "Uplus01"); - data.put("adminId", "Uplus02"); - data.put("adminNm", "김철수"); - data.put("sendingLimit", "100000"); - data.put("lineType", "일반"); - data.put("userStat", "Y"); - data.put("lastLoginDt", "2022-03-10 14:15:45"); - data.put("memo", "메모 입력 란입니다. \n작성글은 저장 버튼으로 저장퇴고 마지막 저장 내용은 남아 있습니다."); - data.put("mdn", "01012345689"); - data.put("email", "lgTester@lgUplus.co.kr"); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - dataObj.put("data", data); + MemberDetailRes memberDetailRes = custMgtMapper.selectMemberDetail(memberDetailReqDto); - for(int i=1; i<=5; i++) { - data = new HashMap<>(); - data.put("no", ""+i); - data.put("userId", "userId"+i); - data.put("userNm", "홍길동"+i); - data.put("mdn", "010-1234-1234"); - data.put("userStat", "Y"); - dataList.add(data); + // 조회 결과 없음. + if(memberDetailRes == null) { + return new MemberDetailResDto(ApiResponseCode.CM_NOT_FOUND); } - dataObj.put("list", dataList); + return new MemberDetailResDto(ApiResponseCode.SUCCESS, memberDetailRes); + } - result.setData(dataObj); - return result; + /** + * 사용자 상세 리스트 조회. + * + * @param memberDetailListReqDto + * @return MemberDetailListResDto + */ + public MemberAdminDetailResDto memberAdminDetail(MemberAdminDetailReqDto memberAdminDetailReqDto) { + + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); + + MemberAdminDetailRes memberAdminDetailRes = custMgtMapper.selectMemberAdminDetail(memberAdminDetailReqDto); + + // 조회 결과 없음. + if(memberAdminDetailRes == null) { + return new MemberAdminDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } + + String nowPage = String.valueOf(memberAdminDetailReqDto.getPage()); + + int totalCnt = custMgtMapper.selectMemberDetailListTotalCnt(memberAdminDetailReqDto); + + if(totalCnt == 0) { + memberAdminDetailRes.setList(new ArrayList<>()); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + memberAdminDetailRes.setPaging(paging); + + }else { + int page = memberAdminDetailReqDto.getPage(); + int pagePerRows = memberAdminDetailReqDto.getPagePerRows(); + page = (page -1) * pagePerRows; + memberAdminDetailReqDto.setPage(page); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + memberAdminDetailRes.setPaging(paging); + + List memberDetails = custMgtMapper.selectMemberDetailList(memberAdminDetailReqDto); + memberAdminDetailRes.setList(memberDetails); + } + + return new MemberAdminDetailResDto(ApiResponseCode.SUCCESS, memberAdminDetailRes); } /** @@ -333,46 +414,101 @@ public class CustMgtService { * @param paramMap * @return */ - public ApiResponseMessage insertTestId(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); + public InsertTestIdResDto insertTestId(InsertTestIdReqDto insertTestIdReqDto) { - return result; + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + int getUserIdCount = custMgtMapper.getUserIdCount(insertTestIdReqDto.getUserId()); + + // 이미 존재하는 아이디. + if(getUserIdCount > 0) { + return new InsertTestIdResDto(ApiResponseCode.CE_DUPLICATE_ID); + } + + // 1. 사업자 번호로 조회. + int checkCustInfo = custMgtMapper.selectCustInfoCount(brno); + String custSeq = custMgtMapper.getCustSeq(brno); + + if(checkCustInfo < 1) { + // 1-2. 사업자 번호로 미존재시 : 고객정보 등록. + CustInfo custInfo = new CustInfo(); + custInfo.setCustSeq(custSeq); + custInfo.setBizrno(brno); + custInfo.setCustNm(cmpyNm); + custInfo.setCustTyCd(custTyCd); + custInfo.setCorpno(cono); + custInfo.setReprNm(insertTestIdReqDto.getUserNm()); + custInfo.setBrthdy(rpsnBday); + custInfo.setZipcd(zipCd); + custInfo.setAddr1(badr); + custInfo.setAddr2(dadr); + custInfo.setRegId(insertTestIdReqDto.getUserId()); + custInfo.setChgId(insertTestIdReqDto.getUserId()); + // 고객정보 등록. + custMgtMapper.insertCustInfo(custInfo); + } + + // 2. 서비스 이용자 등록. + String userSeq = custMgtMapper.getUserSeq(); + SvcUserInfo svcUserInfo = new SvcUserInfo(); + svcUserInfo.setUserSeq(userSeq); + svcUserInfo.setUserId(insertTestIdReqDto.getUserId()); + svcUserInfo.setUserNm(insertTestIdReqDto.getUserNm()); + svcUserInfo.setUserSttusCd(Const.USER_STTUS_CD_NOMAL); + svcUserInfo.setCustSeq(custSeq); + svcUserInfo.setUserTpCd(Const.USER_TP_CD_TEST); + svcUserInfo.setPwd(EncryptionUtil.getCustomSHA512(insertTestIdReqDto.getUserId(), insertTestIdReqDto.getUserPw())); + svcUserInfo.setBizrAuthYn(Const.COMM_NO); + svcUserInfo.setLineTpCd(Const.LINE_TP_CD_NORMAL); + svcUserInfo.setHpNo(insertTestIdReqDto.getMdn()); + svcUserInfo.setEmail(insertTestIdReqDto.getUserEmail()); + svcUserInfo.setAuthcd080(custMgtMapper.getAuth080()); + svcUserInfo.setAutCd(Const.USER_AUTCD_USR); + svcUserInfo.setRegId(insertTestIdReqDto.getUserId()); + svcUserInfo.setChgId(insertTestIdReqDto.getUserId()); + + // 서비스 이용자 등록. + custMgtMapper.insertSvcUserInfo(svcUserInfo); + + // 3. 청약정보 등록 + SubsInfo subsInfo = new SubsInfo(); + // TODO 향후 수정 필요. + subsInfo.setSubsId(""); + // TODO 향후 수정 필요. + subsInfo.setUqvSbscNo(""); + subsInfo.setUserSeq(userSeq); + subsInfo.setCustSeq(custSeq); + subsInfo.setSubsSttusCd(Const.SUBS_STTUS_CD_NORMAL); + subsInfo.setProdCd(prodCd); + subsInfo.setBindDcYn(Const.COMM_NO); + subsInfo.setRegId(insertTestIdReqDto.getUserId()); + subsInfo.setChgId(insertTestIdReqDto.getUserId()); + + // 청약정보 등록. + custMgtMapper.insertSubsInfo(subsInfo); + + return new InsertTestIdResDto(ApiResponseCode.SUCCESS); } /** * date : 2022. 4. 25. * auth : ckr * desc : 전체 메모 목록 조회 - * @param paramMap - * @return + * @param allMemoListReqDto + * @return AllMemoListResDto */ - public ApiResponseMessage allMemoList(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); - Map paging = new HashMap<>(); - Map data; + public AllMemoListResDto allMemoList(AllMemoListReqDto allMemoListReqDto) { - paging.put("totalCnt", "50"); - paging.put("currentPage", "1"); - dataObj.put("paging", paging); + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - for(int i=1; i<=5; i++) { - data = new HashMap<>(); - data.put("memo", "작성한 메모 내용이 노출됩니다. \r\n" - + "해당영역은 최대 5줄까지 노출되며 이후 우측 스크롤이 생성됩니다.\r\n" - + "작성한 메모 내용이 노출됩니다. \r\n" - + "해당영역은 최대 5줄까지 노출되며 이후 우측 스크롤이 생성됩니다.\r\n" - + "작성한 메모 내용이 노출됩니다. \r\n" - + ""); - data.put("register", "관리자"); - data.put("regDt", "2022-03-10"); - dataList.add(data); + List allMemoLists = custMgtMapper.selectMemoList(allMemoListReqDto); + + // 조회 결과 없음. + if(allMemoLists == null) { + return new AllMemoListResDto(ApiResponseCode.CM_NOT_FOUND); } - dataObj.put("list", dataList); - result.setData(dataObj); - return result; + return new AllMemoListResDto(new AllMemoListRes(allMemoLists)); } /** @@ -382,9 +518,37 @@ public class CustMgtService { * @param paramMap * @return */ - public ApiResponseMessage deleteMemo(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - return result; +public DeleteMemoResDto deleteMemo(DeleteMemoReqDto deleteMemoReqDto) { + + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + // 1. 회원정보 조회. + + //user_seq 이용자일련번호 + int checkUserSeq = custMgtMapper.selectUserSeq(deleteMemoReqDto.getRegister()); + + if(checkUserSeq < 1) { + return new DeleteMemoResDto(ApiResponseCode.CM_NOT_FOUND); + } + + // 2. 메모 삭제. + //seqNo, userSeq를 담음. + Map MemoParamMap = new HashMap(); + MemoParamMap.put("seqNo", deleteMemoReqDto.getSeqNo()); + MemoParamMap.put("userSeq", checkUserSeq); + + try { + // 삭제한 건수가 나옴. + int result = custMgtMapper.deleteMemo(MemoParamMap); + // 한건이 나오지 않을경우 + if(result < 1) { + return new DeleteMemoResDto(ApiResponseCode.CM_NOT_FOUND); + } + } catch (Exception e) { + return new DeleteMemoResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + return new DeleteMemoResDto(ApiResponseCode.SUCCESS); } /** @@ -394,9 +558,32 @@ public class CustMgtService { * @param paramMap * @return */ - public ApiResponseMessage insertUser(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - return result; + public InsertUserResDto insertUser(InsertUserReqDto insertUserReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + // 임시패스워드 평문 생성 + String imsiPw = RandomStringUtils.randomAlphanumeric(10); + + String userId = insertUserReqDto.getUserId(); + String encPwd = ""; + + try { + // 패스워드 암호화 + encPwd = EncryptionUtil.getCustomSHA512(userId, imsiPw); + insertUserReqDto.setUserPw(encPwd); + + // 사용자 정보 등록 + custMgtMapper.insertUserInfo(insertUserReqDto); + + // 임시패스워드(평문) 이메일 발송처리 + // TODO: 임시패스워드(평문) 이메일 발송처리 + + + } catch (Exception e) { + return new InsertUserResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + return new InsertUserResDto(ApiResponseCode.SUCCESS); } /** @@ -406,9 +593,31 @@ public class CustMgtService { * @param paramMap * @return */ - public ApiResponseMessage updateUser(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - return result; + public UpdateUserResDto updateUser(UpdateUserReqDto updateUserReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + String userId = updateUserReqDto.getUserId(); + String userPw = updateUserReqDto.getUserPw(); + String encPwd = ""; + + try { + // 패스워드 암호화 + encPwd = EncryptionUtil.getCustomSHA512(userId, userPw); + updateUserReqDto.setUserPw(encPwd); + + // 사용자 정보 수정 + custMgtMapper.updateUserInfo(updateUserReqDto); + + // 임시패스워드(평문) 이메일 발송처리 + // TODO: 임시패스워드(평문) 이메일 발송처리 + + + } catch (Exception e) { + return new UpdateUserResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + + return new UpdateUserResDto(ApiResponseCode.SUCCESS); } /** @@ -418,8 +627,14 @@ public class CustMgtService { * @param paramMap * @return */ - public ApiResponseMessage insertMassUser(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); + public InsertMassUserResDto insertMassUser(InsertMassUserReqDto insertMassUserReqDto) { + + // 1. ID 중복 체크. + + + + + InsertMassUserResDto result = new InsertMassUserResDto(ApiResponseCode.SUCCESS); return result; } @@ -430,9 +645,32 @@ public class CustMgtService { * @param paramMap * @return */ - public ApiResponseMessage deleteUser(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - return result; + public DeleteUserResDto deleteUser(DeleteUserReqDto deleteUserReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + //1.관리자 정보 조회 + int checkAdminId = custMgtMapper.selectAdminId(deleteUserReqDto.getAdminId()); + + //2. 관리자 정보 조회결과 응답 없음 + if(checkAdminId < 1) { + return new DeleteUserResDto(ApiResponseCode.CM_NOT_FOUND); + } + + try { + //3. 사용자정보 삭제 + int result = custMgtMapper.deleteUserList(deleteUserReqDto); + + //4. 삭제대상이 없음. + if(result < 1) { + return new DeleteUserResDto(ApiResponseCode.CM_NOT_FOUND); + } + } catch (Exception e) { + //5. 그 이외의 결과가 나왔을때 데이터 + return new DeleteUserResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + //6. 성공 응답. + return new DeleteUserResDto(ApiResponseCode.SUCCESS); + } /** diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoList.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoList.java new file mode 100644 index 0000000..34bb045 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoList.java @@ -0,0 +1,19 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AllMemoList implements Serializable { + + @ApiModelProperty(example = "내용", name = "내용", dataType = "String") + private String memo; + @ApiModelProperty(example = "작성자", name = "작성자", dataType = "String") + private String register; + @ApiModelProperty(example = "작성일", name = "작성일", dataType = "String") + private String regDt; + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListReqDto.java new file mode 100644 index 0000000..9de7227 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListReqDto.java @@ -0,0 +1,18 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AllMemoListReqDto implements Serializable { + + @NotNull + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListRes.java new file mode 100644 index 0000000..b9515fe --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListRes.java @@ -0,0 +1,20 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AllMemoListRes implements Serializable{ + + private List list; + + public AllMemoListRes(List list) { + super(); + this.list = list; + } + + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListResDto.java new file mode 100644 index 0000000..d359908 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/AllMemoListResDto.java @@ -0,0 +1,38 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AllMemoListResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private AllMemoListRes data; + + public AllMemoListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public AllMemoListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public AllMemoListResDto(ApiResponseCode returnStr, AllMemoListRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + + public AllMemoListResDto(AllMemoListRes data) { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOver.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOver.java new file mode 100644 index 0000000..2cbb133 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOver.java @@ -0,0 +1,22 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class CarryOver implements Serializable { + + @ApiModelProperty(example = "날짜", name = "날짜", dataType = "String") + private String date; + @ApiModelProperty(example = "시작금액", name = "시작금액", dataType = "String") + private String startAmount; + @ApiModelProperty(example = "사용금액", name = "사용금액", dataType = "String") + private String useAmount; + @ApiModelProperty(example = "이월금액", name = "이월금액", dataType = "String") + private String krrrAmount; + @ApiModelProperty(example = "소멸금액", name = "소멸금액", dataType = "String") + private String extshAmount; +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOverListRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOverListRes.java index 7d8f809..a231d58 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOverListRes.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CarryOverListRes.java @@ -9,5 +9,20 @@ import lombok.Data; @Data public class CarryOverListRes implements Serializable{ - private List list; + private List list; + + private String totalCnt; + + public CarryOverListRes(List list) { + super(); + this.list = list; + } + + public CarryOverListRes(List list, String totalCnt) { + super(); + this.list = list; + this.totalCnt = totalCnt; + } + + } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CustInfo.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CustInfo.java new file mode 100644 index 0000000..7cf86f2 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/CustInfo.java @@ -0,0 +1,46 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class CustInfo implements Serializable { + + /** 고객_일련번호 . */ + private String custSeq; + /** 사업자번호 . */ + private String bizrno; + /** 고객사_명 . */ + private String custNm; + /** 고객_유형_코드 . */ + private String custTyCd; + /** 법인번호 . */ + private String corpno; + /** 업종 . */ + private String tpind; + /** 업태 . */ + private String bizcd; + /** 종목 . */ + private String anitem; + /** 대표자_명 . */ + private String reprNm; + /** 대표자_생년월일. */ + private String brthdy; + /** 우편번호 . */ + private String zipcd; + /** 주소1 . */ + private String addr1; + /** 주소2 . */ + private String addr2; + /** 등록_ID . */ + private String regId; + /** 등록_일시 . */ + private String regDt; + /** 변경_ID . */ + private String chgId; + /** 변경_일시 . */ + private String chgDt; + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoReqDto.java new file mode 100644 index 0000000..44a0377 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoReqDto.java @@ -0,0 +1,19 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteMemoReqDto implements Serializable { + + @ApiModelProperty(example = "작성자 계정 ID", name = "작성자 계정 ID", dataType = "String") + private String register; + @ApiModelProperty(example = "메모 일련 번호", name = "메모 일련 번호", dataType = "String") + private String seqNo; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoResDto.java new file mode 100644 index 0000000..76243b1 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteMemoResDto.java @@ -0,0 +1,38 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteMemoResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private DeleteMemoReqDto data; + + public DeleteMemoResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public DeleteMemoResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public DeleteMemoResDto(ApiResponseCode returnStr, DeleteMemoReqDto data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + + public DeleteMemoResDto(DeleteMemoReqDto data) { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUser.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUser.java new file mode 100644 index 0000000..cc9a682 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUser.java @@ -0,0 +1,19 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteUser implements Serializable { + + @NotNull + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserReqDto.java new file mode 100644 index 0000000..8ab0a2b --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserReqDto.java @@ -0,0 +1,18 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteUserReqDto implements Serializable { + + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + + List list; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserResDto.java new file mode 100644 index 0000000..4c0faeb --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteUserResDto.java @@ -0,0 +1,38 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteUserResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private Object data; + + public DeleteUserResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public DeleteUserResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public DeleteUserResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + + public DeleteUserResDto(DeleteUserReqDto data) { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUser.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUser.java new file mode 100644 index 0000000..fa3ee52 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUser.java @@ -0,0 +1,22 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class InsertMassUser implements Serializable{ + + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "사용자 이름", name = "사용자 이름", dataType = "String") + private String userNm; + @ApiModelProperty(example = "ID잠금 상태(사용/미사용)", name = "ID잠금 상태(사용/미사용)", dataType = "String") + private String stat; + @ApiModelProperty(example = "휴대폰번호", name = "휴대폰번호", dataType = "String") + private String mdn; + @ApiModelProperty(example = "이메일", name = "이메일", dataType = "String") + private String email; +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserReqDto.java new file mode 100644 index 0000000..348e1b5 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserReqDto.java @@ -0,0 +1,18 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class InsertMassUserReqDto implements Serializable { + + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + + List list; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserResDto.java new file mode 100644 index 0000000..2a2427f --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertMassUserResDto.java @@ -0,0 +1,30 @@ +package kr.co.uplus.ez.api.custMgt.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 InsertMassUserResDto extends ResponseMessage implements Serializable{ + + private Object data; + + public InsertMassUserResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public InsertMassUserResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public InsertMassUserResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdReqDto.java new file mode 100644 index 0000000..06a1009 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdReqDto.java @@ -0,0 +1,38 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class InsertTestIdReqDto implements Serializable { + + @NotNull + @ApiModelProperty(example = "테스트 계정 ID", name = "테스트 계정 ID", dataType = "String") + private String userId; + + @NotNull + @ApiModelProperty(example = "테스트 계정 비밀번호", name = "테스트 계정 비밀번호", dataType = "String") + private String userPw; + + @NotNull + @ApiModelProperty(example = "테스트 계정의 이름", name = "테스트 계정의 이름", dataType = "String") + private String userNm; + + @NotNull + @ApiModelProperty(example = "테스트 계정의 휴대폰 번호", name = "테스트 계정의 휴대폰 번호", dataType = "String") + private String mdn; + + @NotNull + @ApiModelProperty(example = "테스트 계정의 Email", name = "테스트 계정의 Email", dataType = "String") + private String userEmail; + + @NotNull + @ApiModelProperty(example = "테스트 계정의 상태", name = "테스트 계정의 상태", notes = "Y(사용)/N(정지)", dataType = "String") + private String userStat; + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdResDto.java new file mode 100644 index 0000000..8659d78 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertTestIdResDto.java @@ -0,0 +1,33 @@ +package kr.co.uplus.ez.api.custMgt.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 InsertTestIdResDto extends ResponseMessage implements Serializable { + + // 데이터. + private Object data; + + public InsertTestIdResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public InsertTestIdResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public InsertTestIdResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserReqDto.java new file mode 100644 index 0000000..38da8b9 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserReqDto.java @@ -0,0 +1,27 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class InsertUserReqDto implements Serializable { + + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "사용자 비밀번호", name = "사용자 비밀번호", dataType = "String") + private String userPw; + @ApiModelProperty(example = "사용자 이름", name = "사용자 이름", dataType = "String") + private String userNm; + @ApiModelProperty(example = "사용자 휴대폰 번호", name = "사용자 휴대폰 번호", dataType = "String") + private String mdn; + @ApiModelProperty(example = "사용자 Email", name = "사용자 Email", dataType = "String") + private String userEmail; + @ApiModelProperty(example = "사용자 상태", name = "사용자 상태", dataType = "String") + private String userStat; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserResDto.java new file mode 100644 index 0000000..0142042 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertUserResDto.java @@ -0,0 +1,30 @@ +package kr.co.uplus.ez.api.custMgt.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 InsertUserResDto extends ResponseMessage implements Serializable{ + + private Object data; + + public InsertUserResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public InsertUserResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public InsertUserResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailReqDto.java new file mode 100644 index 0000000..3283e89 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailReqDto.java @@ -0,0 +1,24 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class MemberAdminDetailReqDto implements Serializable { + + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + + @NotNull + @ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String") + private int pagePerRows; + + @NotNull + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int") + private int page; +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailRes.java new file mode 100644 index 0000000..7731b8d --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailRes.java @@ -0,0 +1,44 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.Paging; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class MemberAdminDetailRes implements Serializable { + + @ApiModelProperty(example = "이름", name = "이름", dataType = "String") + private String userNm; + @ApiModelProperty(example = "등록일", name = "등록일", dataType = "String") + private String regDt; + @ApiModelProperty(example = "구분", name = "구분", dataType = "String") + private String userType; + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + @ApiModelProperty(example = "관리자명", name = "관리자명", dataType = "String") + private String adminNm; + @ApiModelProperty(example = "발송한도", name = "발송한도", dataType = "String") + private String sendingLimit; + @ApiModelProperty(example = "라인타입", name = "라인타입", dataType = "String") + private String lineType; + @ApiModelProperty(example = "사용자 상태", name = "사용자 상태", dataType = "String") + private String userStat; + @ApiModelProperty(example = "최종 접속일", name = "최종 접속일", dataType = "String") + private String lastLoginDt; + @ApiModelProperty(example = "메모", name = "메모", dataType = "String") + private String memo; + @ApiModelProperty(example = "휴대폰 번호", name = "휴대폰 번호", dataType = "String") + private String mdn; + @ApiModelProperty(example = "이메일", name = "이메일", dataType = "String") + private String email; + + private Paging paging; + private List list; + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailResDto.java new file mode 100644 index 0000000..ccaf93b --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberAdminDetailResDto.java @@ -0,0 +1,32 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class MemberAdminDetailResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private MemberAdminDetailRes data; + + public MemberAdminDetailResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public MemberAdminDetailResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public MemberAdminDetailResDto(ApiResponseCode returnStr, MemberAdminDetailRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetail.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetail.java index 5717266..123a6e2 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetail.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetail.java @@ -9,20 +9,15 @@ import lombok.Data; @Data public class MemberDetail implements Serializable { - @ApiModelProperty(example = "관리자ID", name = "관리자ID", dataType = "String") - private String adminId; - @ApiModelProperty(example = "관리자코드", name = "관리자코드", dataType = "String") - private String adminCd; - @ApiModelProperty(example = "관리자명", name = "관리자명", dataType = "String") - private String adminNm; - @ApiModelProperty(example = "대리점명", name = "대리점명", dataType = "String") - private String agencyNm; - -// no -// userId -// userNm -// mdn -// userStat - + @ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String") + private String no; + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "사용자 이름", name = "사용자 이름", dataType = "String") + private String userNm; + @ApiModelProperty(example = "사용자 휴대폰 번호", name = "사용자 휴대폰 번호", dataType = "String") + private String mdn; + @ApiModelProperty(example = "사용자 상태", name = "사용자 상태", dataType = "String") + private String userStat; } \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailRes.java new file mode 100644 index 0000000..f864fd7 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailRes.java @@ -0,0 +1,33 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class MemberDetailRes implements Serializable { + + @ApiModelProperty(example = "이름", name = "이름", dataType = "String") + private String userNm; + @ApiModelProperty(example = "등록일", name = "등록일", dataType = "String") + private String regDt; + @ApiModelProperty(example = "구분", name = "구분", dataType = "String") + private String userType; + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + @ApiModelProperty(example = "관리자명", name = "관리자명", dataType = "String") + private String adminNm; + @ApiModelProperty(example = "사용자 상태", name = "사용자 상태", dataType = "String") + private String userStat; + @ApiModelProperty(example = "최종 접속일", name = "최종 접속일", dataType = "String") + private String lastLoginDt; + @ApiModelProperty(example = "휴대폰 번호", name = "휴대폰 번호", dataType = "String") + private String mdn; + @ApiModelProperty(example = "이메일", name = "이메일", dataType = "String") + private String email; + +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailResDto.java new file mode 100644 index 0000000..1f8fb55 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberDetailResDto.java @@ -0,0 +1,32 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class MemberDetailResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private MemberDetailRes data; + + public MemberDetailResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public MemberDetailResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public MemberDetailResDto(ApiResponseCode returnStr, MemberDetailRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberListReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberListReqDto.java index cabb241..9c8878e 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberListReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/MemberListReqDto.java @@ -2,6 +2,8 @@ package kr.co.uplus.ez.api.custMgt.dto; import java.io.Serializable; +import javax.validation.constraints.NotNull; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -21,6 +23,12 @@ public class MemberListReqDto implements Serializable { private String searchType3; @ApiModelProperty(example = "검색어 (입력항목)", name = "검색어 (입력항목)", dataType = "String") private String searchText1; + + @NotNull @ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String") - private String pagePerRows; + private int pagePerRows; + + @NotNull + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int") + private int page; } \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/SubsInfo.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/SubsInfo.java new file mode 100644 index 0000000..36b3720 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/SubsInfo.java @@ -0,0 +1,52 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class SubsInfo implements Serializable{ + + /** 청약_ID . */ + private String subsId; + /** 유큐브_가입_번호 */ + private String uqvSbscNo; + /** 관리자_일련번호. */ + private String userSeq; + /** 고객_일련번호 . */ + private String custSeq; + /** 청약_상태_코드 . */ + private String subsSttusCd; + /** 상품_코드 . */ + private String prodCd; + /** 청약_일시 . */ + private String subsDt; + /** 개통_일시 . */ + private String opnDt; + /** 해지_일시 . */ + private String trmnDt; + /** 청구_번호 . */ + private String billNo; + /** 결합_할인_여부 . */ + private String bindDcYn; + /** 고객_번호 . */ + private String custNo; + /** 청약유치자_ID . */ + private String attrctorId; + /** 청약유치자_명 . */ + private String attrctorNm; + /** 청약관리자_ID . */ + private String subsmngrId; + /** 청약관리자_명 . */ + private String subsmngrNm; + /** 등록_ID . */ + private String regId; + /** 등록_일시 . */ + private String regDt; + /** 변경_ID . */ + private String chgId; + /** 변경_일시 . */ + private String chgDt; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/SvcUserInfo.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/SvcUserInfo.java new file mode 100644 index 0000000..6baedd5 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/SvcUserInfo.java @@ -0,0 +1,56 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class SvcUserInfo implements Serializable{ + + /** 이용자_일련번호 . */ + private String userSeq; + /** 이용자_ID . */ + private String userId; + /** 이용자_명 . */ + private String userNm; + /** 이용자_상태_코드 . */ + private String userSttusCd; + /** 부모_이용자_일련번호 . */ + private String prntsUserSeq; + /** 고객_일련번호 . */ + private String custSeq; + /** 이용자_유형_코드 . */ + private String userTpCd; + /** 비밀번호 . */ + private String pwd; + /** 사업자_인증_여부 . */ + private String bizrAuthYn; + /** 라인_유형_코드 . */ + private String lineTpCd; + /** 휴대폰_번호 . */ + private String hpNo; + /** 이메일_주소 . */ + private String email; + /** 인증코드_080 . */ + private String authcd080; + /** 권한_코드 . */ + private String autCd; + /** 마지막_로그인_일시 . */ + private String lastLoginDt; + /** 로그인_실패_횟수 . */ + private String loginFailCnt; + /** 비밀번호 초기화 여부 . */ + private String pwdInit; + /** 비밀번호_변경_일시 . */ + private String pwdChgDt; + /** 등록_ID . */ + private String regId; + /** 등록_일시 . */ + private String regDt; + /** 변경_ID . */ + private String chgId; + /** 변경_일시 . */ + private String chgDt; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoReqDto.java new file mode 100644 index 0000000..afc301b --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoReqDto.java @@ -0,0 +1,21 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class UpdateAdminInfoReqDto implements Serializable { + + @ApiModelProperty(example = "관리자ID", name = "관리자ID", dataType = "String") + private String adminId; + + @ApiModelProperty(example = "관리자명", name = "관리자명", dataType = "String") + private String adminNm; + + @ApiModelProperty(example = "서비스ID", name = "서비스ID", dataType = "String") + private String serviceId; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoResDto.java new file mode 100644 index 0000000..a4539e6 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateAdminInfoResDto.java @@ -0,0 +1,34 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class UpdateAdminInfoResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private Object data; + + public UpdateAdminInfoResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UpdateAdminInfoResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UpdateAdminInfoResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserReqDto.java new file mode 100644 index 0000000..ebd4c1c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserReqDto.java @@ -0,0 +1,27 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class UpdateUserReqDto implements Serializable { + + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + @ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "사용자 비밀번호", name = "사용자 비밀번호", dataType = "String") + private String userPw; + @ApiModelProperty(example = "사용자 이름", name = "사용자 이름", dataType = "String") + private String userNm; + @ApiModelProperty(example = "사용자 휴대폰 번호", name = "사용자 휴대폰 번호", dataType = "String") + private String mdn; + @ApiModelProperty(example = "사용자 Email", name = "사용자 Email", dataType = "String") + private String userEmail; + @ApiModelProperty(example = "사용자 상태", name = "사용자 상태", dataType = "String") + private String userStat; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserResDto.java new file mode 100644 index 0000000..c7962e6 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateUserResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.custMgt.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 UpdateUserResDto extends ResponseMessage implements Serializable{ + +private Object data; + + public UpdateUserResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UpdateUserResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UpdateUserResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + +} diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtController.java b/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtController.java index 2697930..6d4164c 100644 --- a/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtController.java +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtController.java @@ -7,21 +7,35 @@ 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 kr.co.uplus.ez.common.data.ApiResponseMessage; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +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; @RestController @RequestMapping(value = "api/v1/bo/servMgt") public class ServMgtController { @Autowired - ServMgtService ServService; + ServMgtService servMgtService; + + @Autowired + ValidComponents validComponents; + /** * date : 2022. 4. 25. @@ -31,9 +45,19 @@ public class ServMgtController { * @return * @throws Exception */ - @RequestMapping(value = "/rejectRecvList" , method = {RequestMethod.POST}) + @ApiOperation(value = "rejectRecvList", notes = "080수신거부 목록 조회") + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "rejectRecvList", method = { RequestMethod.POST }) @ResponseBody - public ApiResponseMessage rejectRecvList(@RequestBody Map paramMap) throws Exception{ - return ServMgtService.rejectRecvList(paramMap); + public RejectRecvListResDto rejectRecvList(@RequestBody @Valid RejectRecvListReqDto rejectRecvListReqDto, BindingResult bindingResult) throws Exception{ + + if (validComponents.validParameter(bindingResult)) { + return new RejectRecvListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return servMgtService.rejectRecvList(rejectRecvListReqDto); } + + + } diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtMapper.java index 5b34d8d..f555040 100644 --- a/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtMapper.java +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtMapper.java @@ -1,8 +1,16 @@ package kr.co.uplus.ez.api.servMgt; +import java.util.List; + import org.apache.ibatis.annotations.Mapper; +import kr.co.uplus.ez.api.servMgt.dto.RejectRecvInfo; +import kr.co.uplus.ez.api.servMgt.dto.RejectRecvListReqDto; + @Mapper -public class ServMgtMapper { +public interface ServMgtMapper { + int selectRejectRecvTotalCnt(RejectRecvListReqDto rejectRecvListReqDto); + + List selectRejectRecvList(RejectRecvListReqDto rejectRecvListReqDto); } diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtService.java b/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtService.java index 60d385a..9c78824 100644 --- a/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/ServMgtService.java @@ -5,47 +5,72 @@ 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.ApiResponseMessage; +import kr.co.uplus.ez.common.data.Paging; @Service public class ServMgtService { + private static final Logger logger = LoggerFactory.getLogger(ServMgtService.class); + + @Autowired + @Qualifier("sqlSessionTemplateDb1") + private SqlSessionTemplate sqlSessionMaster; + + @Autowired + @Qualifier("sqlSessionTemplateDb2") + private SqlSessionTemplate sqlSessionSlave; + + /** * date : 2022. 4. 25. * auth : ckr * desc : 080수신거부 목록 조회 * @param paramMap - * @return + * @return */ - public static ApiResponseMessage rejectRecvList(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); - Map data = new HashMap<>(); - - 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("custNm", "유플러스"); - data.put("bRegNo", "229-81-38889"); - data.put("adminId", "Uplus01"); - data.put("authCd", "12345"); - data.put("useYn", "사용"); - data.put("regDt", "2022-03-10"); - data.put("chgDt", "2022-03-10"); - - dataList.add(data); - } - dataObj.put("list", dataList); - result.setData(dataObj); - return result; - } + public RejectRecvListResDto rejectRecvList(RejectRecvListReqDto rejectRecvListReqDto) { + ServMgtMapper servMgtMapper = sqlSessionSlave.getMapper(ServMgtMapper.class); + String nowPage = String.valueOf(rejectRecvListReqDto.getPage()); + int totalCnt = servMgtMapper.selectRejectRecvTotalCnt(rejectRecvListReqDto); + + if(totalCnt == 0) { + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + RejectRecvListRes rejectRecvListRes = new RejectRecvListRes(); + rejectRecvListRes.setList(new ArrayList<>()); + rejectRecvListRes.setPaging(paging); + return new RejectRecvListResDto(ApiResponseCode.CM_NOT_FOUND, rejectRecvListRes); + } + logger.info("perPage : "+rejectRecvListReqDto.getPagePerRows()); + int page = rejectRecvListReqDto.getPage(); + int pagePerRows = rejectRecvListReqDto.getPagePerRows(); + page = (page -1) * pagePerRows; + rejectRecvListReqDto.setPage(page); + + List rejectRecvInfos = servMgtMapper.selectRejectRecvList(rejectRecvListReqDto); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + + RejectRecvListRes rejectRecvListRes = new RejectRecvListRes(); + rejectRecvListRes.setList(rejectRecvInfos); + rejectRecvListRes.setPaging(paging); + + return new RejectRecvListResDto(ApiResponseCode.SUCCESS, rejectRecvListRes); + } } diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvInfo.java b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvInfo.java new file mode 100644 index 0000000..2111d8e --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvInfo.java @@ -0,0 +1,27 @@ +package kr.co.uplus.ez.api.servMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class RejectRecvInfo 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 = "관리자ID", name = "관리자ID", dataType = "String") + private String userId; + @ApiModelProperty(example = "인증코드", name = "인증코드", dataType = "String") + private String authcd080; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYN; + @ApiModelProperty(example = "등록일", name = "등록일", notes = "01:사용/ 02:중지", dataType = "String") + private String regDt; + @ApiModelProperty(example = "최종수정일", name = "최종수정일", dataType = "String") + private String chgDt; +} diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListReqDto.java b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListReqDto.java new file mode 100644 index 0000000..3983432 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListReqDto.java @@ -0,0 +1,28 @@ +package kr.co.uplus.ez.api.servMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class RejectRecvListReqDto implements Serializable { + + @ApiModelProperty(example = "사용상태", name = "사용상태", notes = "항목 : 전체(Default)/사용/중지", dataType = "String") + private String searchType1; + @ApiModelProperty(example = "검색조건", name = "검색조건", notes = "항목 : 고객사명/ 사업자번호 / 인증코드", dataType = "String") + private String searchType2; + @ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", dataType = "String") + private String searchText1; + + @NotNull + @ApiModelProperty(example = "페이지당 조회할 목록 수",notes = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "int") + private int pagePerRows; + + @NotNull + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int") + private int page; +} diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListRes.java b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListRes.java new file mode 100644 index 0000000..e35d101 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListRes.java @@ -0,0 +1,15 @@ +package kr.co.uplus.ez.api.servMgt.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 RejectRecvListRes implements Serializable{ + + private Paging paging; + private List list; +} diff --git a/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListResDto.java b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListResDto.java new file mode 100644 index 0000000..3e206f7 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/servMgt/dto/RejectRecvListResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.servMgt.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 RejectRecvListResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private RejectRecvListRes data; + + public RejectRecvListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public RejectRecvListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public RejectRecvListResDto(ApiResponseCode returnStr, RejectRecvListRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java index dfc8105..ce3fa6e 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java @@ -5,7 +5,6 @@ */ package kr.co.uplus.ez.api.sysMgt; -import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -14,9 +13,9 @@ import javax.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.validation.BindingResult; -import org.springframework.validation.FieldError; -import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -30,17 +29,25 @@ import kr.co.uplus.ez.api.sysMgt.dto.AdminDetailReqDto; import kr.co.uplus.ez.api.sysMgt.dto.AdminDetailResDto; import kr.co.uplus.ez.api.sysMgt.dto.AdminListReqDto; import kr.co.uplus.ez.api.sysMgt.dto.AdminListResDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetailReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetailResDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthListResDto; import kr.co.uplus.ez.api.sysMgt.dto.DeleteAdminReqDto; import kr.co.uplus.ez.api.sysMgt.dto.DeleteAdminResDto; +import kr.co.uplus.ez.api.sysMgt.dto.DeleteAuthReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.DeleteAuthResDto; import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminReqDto; import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminResDto; +import kr.co.uplus.ez.api.sysMgt.dto.InsertAuthReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.InsertAuthResDto; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangIdReqDto; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangIdResDto; import kr.co.uplus.ez.api.sysMgt.dto.UpdateAdminReqDto; import kr.co.uplus.ez.api.sysMgt.dto.UpdateAdminResDto; +import kr.co.uplus.ez.api.sysMgt.dto.UpdateAuthReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.UpdateAuthResDto; +import kr.co.uplus.ez.common.components.ValidComponents; import kr.co.uplus.ez.common.data.ApiResponseCode; -import kr.co.uplus.ez.common.data.ApiResponseMessage; - /** * 시스템 관리 Controller. @@ -57,84 +64,59 @@ public class SysMgtController { @Autowired SysMgtService sysService; + @Autowired + ValidComponents validComponents; + /** - * date : 2022. 4. 25. - * auth : ckr - * desc : HUBEZ_BO_API_4001 - 관리자 목록 조회. + * date : 2022. 4. 25. auth : ckr desc : HUBEZ_BO_API_4001 - 관리자 목록 조회. + * * @param adminListReqDto * @return AdminListResDto */ @ApiOperation(value = "adminList", notes = "관리자 목록 조회") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "adminList" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "adminList", method = { RequestMethod.POST }) @ResponseBody - public AdminListResDto adminList(@RequestBody @Valid AdminListReqDto adminListReqDto, BindingResult bindingResult){ + public AdminListResDto adminList(@RequestBody @Valid AdminListReqDto adminListReqDto, BindingResult bindingResult) { - if(bindingResult.hasErrors()) { - StringBuffer sb = new StringBuffer(); - List objectErrors = bindingResult.getAllErrors(); - - objectErrors.forEach(objectError -> { - FieldError fieldError = (FieldError) objectError; - String field = fieldError.getField(); - String message = fieldError.getDefaultMessage(); - sb.append("field : " + field + "\n"); - sb.append("message : " + message + "\n"); - }); - logger.debug("adminList parm Error : {}", sb.toString()); + if (validComponents.validParameter(bindingResult)) { return new AdminListResDto(ApiResponseCode.CM_PARAMETER_ERROR); } - return sysService.adminList(adminListReqDto); } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : HUBEZ_BO_API_4001 - 마당ID 조회. + * date : 2022. 4. 25. auth : ckr desc : HUBEZ_BO_API_4001 - 마당ID 조회. * * @return SearchMadangIdResDto */ @ApiOperation(value = "madangId", notes = "마당ID 조회") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "madangId" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "madangId", method = { RequestMethod.POST }) @ResponseBody - public SearchMadangIdResDto searchMadangId(@RequestBody @Valid SearchMadangIdReqDto searchMadangIdReqDto){ + public SearchMadangIdResDto searchMadangId(@RequestBody @Valid SearchMadangIdReqDto searchMadangIdReqDto, + BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { + return new SearchMadangIdResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } return sysService.searchMadangId(searchMadangIdReqDto); } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : HUBEZ_BO_API_4003 - 관리자 등록. + * date : 2022. 4. 25. auth : ckr desc : HUBEZ_BO_API_4003 - 관리자 등록. + * * @param insertAdminReqDto * @return InsertAdminResDto */ @ApiOperation(value = "insertAdmin", notes = "관리자 등록") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "insertAdmin" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "insertAdmin", method = { RequestMethod.POST }) @ResponseBody - public InsertAdminResDto insertAdmin(@RequestBody @Valid InsertAdminReqDto insertAdminReqDto, BindingResult bindingResult){ + public InsertAdminResDto insertAdmin(@RequestBody @Valid InsertAdminReqDto insertAdminReqDto, + BindingResult bindingResult) { - if(bindingResult.hasErrors()) { - StringBuffer sb = new StringBuffer(); - List objectErrors = bindingResult.getAllErrors(); - - objectErrors.forEach(objectError -> { - FieldError fieldError = (FieldError) objectError; - String field = fieldError.getField(); - String message = fieldError.getDefaultMessage(); - sb.append("field : " + field + "\n"); - sb.append("message : " + message + "\n"); - }); - logger.debug("insertAdmin parm Error : {}", sb.toString()); + if (validComponents.validParameter(bindingResult)) { return new InsertAdminResDto(ApiResponseCode.CM_PARAMETER_ERROR); } @@ -142,33 +124,19 @@ public class SysMgtController { } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : HUBEZ_BO_API_4004 - 관리자 수정. + * date : 2022. 4. 25. auth : ckr desc : HUBEZ_BO_API_4004 - 관리자 수정. + * * @param updateAdminReqDto - * @return UpdateAdminResDto - * @ + * @return UpdateAdminResDto @ */ @ApiOperation(value = "updateAdmin", notes = "관리자 수정") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "updateAdmin" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "updateAdmin", method = { RequestMethod.POST }) @ResponseBody - public UpdateAdminResDto updateAdmin(@RequestBody @Valid UpdateAdminReqDto updateAdminReqDto, BindingResult bindingResult) { + public UpdateAdminResDto updateAdmin(@RequestBody @Valid UpdateAdminReqDto updateAdminReqDto, + BindingResult bindingResult) { - if(bindingResult.hasErrors()) { - StringBuffer sb = new StringBuffer(); - List objectErrors = bindingResult.getAllErrors(); - - objectErrors.forEach(objectError -> { - FieldError fieldError = (FieldError) objectError; - String field = fieldError.getField(); - String message = fieldError.getDefaultMessage(); - sb.append("field : " + field + "\n"); - sb.append("message : " + message + "\n"); - }); - logger.debug("Error : {}", sb.toString()); + if (validComponents.validParameter(bindingResult)) { return new UpdateAdminResDto(ApiResponseCode.CM_PARAMETER_ERROR); } @@ -176,33 +144,19 @@ public class SysMgtController { } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : HUBEZ_BO_API_4005 - 관리자 삭제. + * date : 2022. 4. 25. auth : ckr desc : HUBEZ_BO_API_4005 - 관리자 삭제. + * * @param deleteAdminReqDto - * @return DeleteAdminResDto - * @ + * @return DeleteAdminResDto @ */ @ApiOperation(value = "deleteAdmin", notes = "관리자 삭제") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "deleteAdmin" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "deleteAdmin", method = { RequestMethod.POST }) @ResponseBody - public DeleteAdminResDto deleteAdmin(@RequestBody @Valid DeleteAdminReqDto deleteAdminReqDto, BindingResult bindingResult) { + public DeleteAdminResDto deleteAdmin(@RequestBody @Valid DeleteAdminReqDto deleteAdminReqDto, + BindingResult bindingResult) { - if(bindingResult.hasErrors()) { - StringBuffer sb = new StringBuffer(); - List objectErrors = bindingResult.getAllErrors(); - - objectErrors.forEach(objectError -> { - FieldError fieldError = (FieldError) objectError; - String field = fieldError.getField(); - String message = fieldError.getDefaultMessage(); - sb.append("field : " + field + "\n"); - sb.append("message : " + message + "\n"); - }); - logger.debug("deleteAdmin parm Error : {}", sb.toString()); + if (validComponents.validParameter(bindingResult)) { return new DeleteAdminResDto(ApiResponseCode.CM_PARAMETER_ERROR); } @@ -210,33 +164,19 @@ public class SysMgtController { } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : HUBEZ_BO_API_4006 - 관리자 정보 상세 조회. + * date : 2022. 4. 25. auth : ckr desc : HUBEZ_BO_API_4006 - 관리자 정보 상세 조회. + * * @param adminDetailReqDto - * @return AdminDetailResDto - * @ + * @return AdminDetailResDto @ */ @ApiOperation(value = "adminDetail", notes = "관리자 정보 상세 조회") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "adminDetail" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "adminDetail", method = { RequestMethod.POST }) @ResponseBody - public AdminDetailResDto adminDetail(@RequestBody @Valid AdminDetailReqDto adminDetailReqDto, BindingResult bindingResult) { + public AdminDetailResDto adminDetail(@RequestBody @Valid AdminDetailReqDto adminDetailReqDto, + BindingResult bindingResult) { - if(bindingResult.hasErrors()) { - StringBuffer sb = new StringBuffer(); - List objectErrors = bindingResult.getAllErrors(); - - objectErrors.forEach(objectError -> { - FieldError fieldError = (FieldError) objectError; - String field = fieldError.getField(); - String message = fieldError.getDefaultMessage(); - sb.append("field : " + field + "\n"); - sb.append("message : " + message + "\n"); - }); - logger.debug("adminDetail parm Error : {}", sb.toString()); + if (validComponents.validParameter(bindingResult)) { return new AdminDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR); } @@ -244,77 +184,92 @@ public class SysMgtController { } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : 권한 목록 조회 + * date : 2022. 4. 25. auth : ckr desc : 권한 목록 조회 + * * @param paramMap - * @return - * @ + * @return @ */ @ApiOperation(value = "authList", notes = "권한 목록 조회") - @ApiResponses({ - @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") - }) - @RequestMapping(value = "authList" , method = {RequestMethod.POST}) + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "authList", method = { RequestMethod.POST }) @ResponseBody - public ApiResponseMessage authList(@RequestBody Map paramMap) { + public AuthListResDto authList(@RequestBody Map paramMap) { return sysService.authList(paramMap); } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : 권한 삭제 + * date : 2022. 4. 25. auth : ckr desc : 권한 삭제 + * * @param paramMap - * @return - * @ + * @return @ */ - @RequestMapping(value = "/deleteAuth" , method = {RequestMethod.POST}) + @RequestMapping(value = "/deleteAuth", method = { RequestMethod.POST }) @ResponseBody - public ApiResponseMessage deleteAuth(@RequestBody Map paramMap) { - return sysService.deleteAuth(paramMap); + public DeleteAuthResDto deleteAuth(@RequestBody @Valid DeleteAuthReqDto deleteAuthReqDto, + BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { + return new DeleteAuthResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return sysService.deleteAuth(deleteAuthReqDto); } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : 권한 상세 조회 + * date : 2022. 4. 25. auth : ckr desc : 권한 상세 조회 + * * @param paramMap - * @return - * @ + * @return @ */ - @RequestMapping(value = "/authDetail" , method = {RequestMethod.POST}) + @RequestMapping(value = "/authDetail", method = { RequestMethod.POST }) @ResponseBody - public ApiResponseMessage authDetail(@RequestBody Map paramMap) { - return sysService.authDetail(paramMap); + public AuthDetailResDto authDetail(@RequestBody @Valid AuthDetailReqDto authDetailReqDto, + BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { + return new AuthDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return sysService.authDetail(authDetailReqDto); } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : 권한 추가 + * date : 2022. 4. 25. auth : ckr desc : 권한 추가 + * * @param paramMap - * @return - * @ + * @return @ */ - @RequestMapping(value = "/insertAuth" , method = {RequestMethod.POST}) + @RequestMapping(value = "/insertAuth", method = { RequestMethod.POST }) @ResponseBody - public ApiResponseMessage insertAuth(@RequestBody Map paramMap) { - return sysService.insertAuth(paramMap); + public InsertAuthResDto insertAuth(@RequestBody @Valid InsertAuthReqDto insertAuthReqDto, + BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { + return new InsertAuthResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + UserDetails userDetails = (UserDetails) principal; + + String regId = userDetails.getUsername(); + + return sysService.insertAuth(insertAuthReqDto, regId); } /** - * date : 2022. 4. 25. - * auth : ckr - * desc : 권한 수정 + * date : 2022. 4. 25. auth : ckr desc : 권한 수정 + * * @param paramMap - * @return - * @ + * @return @ */ - @RequestMapping(value = "/updateAuth" , method = {RequestMethod.POST}) + @RequestMapping(value = "/updateAuth", method = { RequestMethod.POST }) @ResponseBody - public ApiResponseMessage updateAuth(@RequestBody Map paramMap) { - return sysService.updateAuth(paramMap); + + public UpdateAuthResDto updateAuth(@RequestBody @Valid UpdateAuthReqDto updateAuthReqDto, + BindingResult bindingResult) { + if (validComponents.validParameter(bindingResult)) { + return new UpdateAuthResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + UserDetails userDetails = (UserDetails) principal; + + String regId = userDetails.getUsername(); + + return sysService.updateAuth(updateAuthReqDto, regId); } } diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java index a3d5a52..26675d1 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java @@ -1,6 +1,7 @@ package kr.co.uplus.ez.api.sysMgt; import java.util.List; +import java.util.Map; import org.apache.ibatis.annotations.Mapper; @@ -8,11 +9,18 @@ import kr.co.uplus.ez.api.sysMgt.dto.AdminDetail; import kr.co.uplus.ez.api.sysMgt.dto.AdminDetailReqDto; import kr.co.uplus.ez.api.sysMgt.dto.AdminInfo; import kr.co.uplus.ez.api.sysMgt.dto.AdminListReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetail; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetailReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthInfo; +import kr.co.uplus.ez.api.sysMgt.dto.AuthMenu; import kr.co.uplus.ez.api.sysMgt.dto.DeleteAdmin; +import kr.co.uplus.ez.api.sysMgt.dto.DeleteAuthReqDto; import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.InsertAuthReqDto; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangId; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangIdReqDto; import kr.co.uplus.ez.api.sysMgt.dto.UpdateAdminReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.UpdateAuthReqDto; @Mapper public interface SysMgtMapper { @@ -34,5 +42,20 @@ public interface SysMgtMapper { SearchMadangId selectSearchMadangId(SearchMadangIdReqDto searchMadangId); int deleteAdminList(List deleteAdmins); + + List selectAuthList(); + + AuthDetail selectAuthDetail(AuthDetailReqDto authDetailReqDto); // 권한 상세 조회 -} + List selectAuthMemuList(AuthDetailReqDto authDetailReqDto); // 권한메뉴 리스트 조회 + + int insertAuth(Map paramMap); // 권한 등록 + + int insertAuthMenu(Map paramMap); // 권한메뉴 등록 + + int updateAuth(Map paramMap); // 권한 수정 + + int deleteAuth(Map paramMap); // 권한 삭제 + + int deleteAuthMenu(Map paramMap); // 권한메뉴 삭제 +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java index 1851446..e7e2c11 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java @@ -23,15 +23,28 @@ import kr.co.uplus.ez.api.sysMgt.dto.AdminInfo; import kr.co.uplus.ez.api.sysMgt.dto.AdminListReqDto; import kr.co.uplus.ez.api.sysMgt.dto.AdminListRes; import kr.co.uplus.ez.api.sysMgt.dto.AdminListResDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetail; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetailReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthDetailResDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthInfo; +import kr.co.uplus.ez.api.sysMgt.dto.AuthListRes; +import kr.co.uplus.ez.api.sysMgt.dto.AuthListResDto; +import kr.co.uplus.ez.api.sysMgt.dto.AuthMenu; import kr.co.uplus.ez.api.sysMgt.dto.DeleteAdminReqDto; import kr.co.uplus.ez.api.sysMgt.dto.DeleteAdminResDto; +import kr.co.uplus.ez.api.sysMgt.dto.DeleteAuthReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.DeleteAuthResDto; import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminReqDto; import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminResDto; +import kr.co.uplus.ez.api.sysMgt.dto.InsertAuthReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.InsertAuthResDto; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangId; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangIdReqDto; import kr.co.uplus.ez.api.sysMgt.dto.SearchMadangIdResDto; import kr.co.uplus.ez.api.sysMgt.dto.UpdateAdminReqDto; import kr.co.uplus.ez.api.sysMgt.dto.UpdateAdminResDto; +import kr.co.uplus.ez.api.sysMgt.dto.UpdateAuthReqDto; +import kr.co.uplus.ez.api.sysMgt.dto.UpdateAuthResDto; import kr.co.uplus.ez.common.data.ApiResponseCode; import kr.co.uplus.ez.common.data.ApiResponseMessage; import kr.co.uplus.ez.common.data.Paging; @@ -100,9 +113,20 @@ public class SysMgtService { * @return SearchMadangIdResDto */ public SearchMadangIdResDto searchMadangId(SearchMadangIdReqDto searchMadangIdReqDto) { - SysMgtMapper sysMgtMapper = sqlSessionSlave.getMapper(SysMgtMapper.class); - SearchMadangId MadangId = sysMgtMapper.selectSearchMadangId(searchMadangIdReqDto); + SysMgtMapper sysMgtMapper = sqlSessionSlave.getMapper(SysMgtMapper.class); + SearchMadangId MadangId = new SearchMadangId(); + try { + MadangId = sysMgtMapper.selectSearchMadangId(searchMadangIdReqDto); + + if(MadangId == null) { + return new SearchMadangIdResDto(ApiResponseCode.CM_NOT_FOUND); + } + + } catch (Exception e) { + // TODO: handle exception + return new SearchMadangIdResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } return new SearchMadangIdResDto(ApiResponseCode.SUCCESS, MadangId); } @@ -188,9 +212,20 @@ public class SysMgtService { * @return */ public AdminDetailResDto adminDetail(AdminDetailReqDto adminDetailReqDto) { + SysMgtMapper sysMgtMapper = sqlSessionSlave.getMapper(SysMgtMapper.class); - AdminDetail adminDetail = sysMgtMapper.selectAdminDetail(adminDetailReqDto); + AdminDetail adminDetail = new AdminDetail(); + try { + adminDetail = sysMgtMapper.selectAdminDetail(adminDetailReqDto); + + if(adminDetail == null) { + return new AdminDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } + } catch (Exception e) { + // TODO: handle exception + return new AdminDetailResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } return new AdminDetailResDto(ApiResponseCode.SUCCESS, adminDetail); } @@ -202,50 +237,24 @@ public class SysMgtService { * @param paramMap * @return */ - public ApiResponseMessage authList(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); - Map data = new HashMap<>(); + public AuthListResDto authList(Map paramMap) { + List rsAuthInfoList = new ArrayList(); + AuthListRes result = new AuthListRes(); + + SysMgtMapper sysMgtMapper = sqlSessionSlave.getMapper(SysMgtMapper.class); + + try { + rsAuthInfoList = sysMgtMapper.selectAuthList(); + if(rsAuthInfoList.size() < 1) { + return new AuthListResDto(ApiResponseCode.CM_NOT_FOUND); + } + result.setList(rsAuthInfoList); + + } catch (Exception e) { + return new AuthListResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } - - data = new HashMap<>(); - data.put("no", "1"); - data.put("authCd", "Admin_01"); - data.put("authNm", "슈퍼관리자"); - data.put("authStat", "사용"); - data.put("regDt", "2022-03-10"); - dataList.add(data); - - data = new HashMap<>(); - data.put("no", "2"); - data.put("authCd", "Admin_02"); - data.put("authNm", "대리점"); - data.put("authStat", "사용"); - data.put("regDt", "2022-03-10"); - dataList.add(data); - - data = new HashMap<>(); - data.put("no", "3"); - data.put("authCd", "Admin_03"); - data.put("authNm", "고객센터"); - data.put("authStat", "사용"); - data.put("regDt", "2022-03-10"); - dataList.add(data); - - data = new HashMap<>(); - data.put("no", "4"); - data.put("authCd", "Admin_04"); - data.put("authNm", "운영자"); - data.put("authStat", "정지"); - data.put("regDt", "2022-03-10"); - dataList.add(data); - - dataObj.put("list", dataList); - - result.setData(dataObj); - - return result; + return new AuthListResDto(ApiResponseCode.SUCCESS, result); } /** @@ -255,8 +264,29 @@ public class SysMgtService { * @param paramMap * @return */ - public ApiResponseMessage deleteAuth(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); + public DeleteAuthResDto deleteAuth(DeleteAuthReqDto deleteAuthReqDto) { + + SysMgtMapper sysMgtMapper = sqlSessionMaster.getMapper(SysMgtMapper.class); + Map authParamMap = new HashMap(); + + authParamMap.put("authCd", deleteAuthReqDto.getAuthCd()); + + try { + // 1.권한메뉴 삭제 + sysMgtMapper.deleteAuthMenu(authParamMap); + + // 2.권한 삭제 + int result = sysMgtMapper.deleteAuth(authParamMap); + + if(result < 1) { + return new DeleteAuthResDto(ApiResponseCode.CM_NOT_FOUND); + } + + } catch (Exception e) { + return new DeleteAuthResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + DeleteAuthResDto result = new DeleteAuthResDto(ApiResponseCode.SUCCESS); return result; } @@ -267,30 +297,35 @@ public class SysMgtService { * @param paramMap * @return */ - public ApiResponseMessage authDetail(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - Map dataObj = new HashMap<>(); - List> dataList = new ArrayList<>(); - Map data; - - dataObj.put("authNm", "운영자"); - dataObj.put("authCd", "Admin_02"); - dataObj.put("authDesc", "운영자 권한"); - dataObj.put("authStat", "Y"); - - for(int i=1; i<=10; i++) { - data = new HashMap<>(); - data.put("upperMenuNo", "1"); - data.put("name", "청약고객관리"+i); - data.put("order", ""+i); - data.put("useYn", "Y"); - data.put("menuLv", "1"); - dataList.add(data); + public AuthDetailResDto authDetail(AuthDetailReqDto authDetailReqDto) { + + SysMgtMapper sysMgtMapper = sqlSessionSlave.getMapper(SysMgtMapper.class); + + AuthDetail authDetail = new AuthDetail(); + List authMenuList = new ArrayList(); + + try { + authDetail = sysMgtMapper.selectAuthDetail(authDetailReqDto); + + if(authDetail == null) { + return new AuthDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } + authMenuList = sysMgtMapper.selectAuthMemuList(authDetailReqDto); + + if(authMenuList.size() < 1) { + return new AuthDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } + + authDetail.setList(authMenuList); + + + } catch (Exception e) { + // TODO: handle exception + return new AuthDetailResDto(ApiResponseCode.CM_DB_QUERY_ERR); } - dataObj.put("list", dataList); - result.setData(dataObj); - - return result; + + return new AuthDetailResDto(ApiResponseCode.SUCCESS, authDetail); + } /** @@ -300,9 +335,50 @@ public class SysMgtService { * @param paramMap * @return */ - public ApiResponseMessage insertAuth(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - return result; + public InsertAuthResDto insertAuth(InsertAuthReqDto insertAuthReqDto, String regId) { + + SysMgtMapper sysMgtMapper = sqlSessionMaster.getMapper(SysMgtMapper.class); + + AuthDetailReqDto authDetailReqDto = new AuthDetailReqDto(); + AuthDetail authDetail = new AuthDetail(); + Map authParamMap = new HashMap(); + Map authMenuParamMap = new HashMap(); + List reqAuthMenuList = new ArrayList(); + + authDetailReqDto.setAuthCd(insertAuthReqDto.getAuthCd()); + + // 권한코드 조회(권한코드 중복체크) + authDetail = sysMgtMapper.selectAuthDetail(authDetailReqDto); + if(authDetail != null) { + return new InsertAuthResDto(ApiResponseCode.CE_SYSMGT_AUTHCODE_INVALID); + } + + try { + // 권한 등록 + authParamMap.put("authCd", insertAuthReqDto.getAuthCd()); + authParamMap.put("authNm", insertAuthReqDto.getAuthNm()); + authParamMap.put("authDesc", insertAuthReqDto.getAuthDesc()); + authParamMap.put("stat", insertAuthReqDto.getStat()); + authParamMap.put("regId", regId); + sysMgtMapper.insertAuth(authParamMap); + + // 권한메뉴 등록 + reqAuthMenuList = insertAuthReqDto.getList(); + + for(int i =0; i(); + authMenuParamMap.put("authCd", authParamMap.get("authCd")); + authMenuParamMap.put("regId", regId); + authMenuParamMap.put("menuNo", reqAuthMenuList.get(i).getMenuNo()); + + sysMgtMapper.insertAuthMenu(authMenuParamMap); + } + + } catch (Exception e) { + // TODO: handle exception + return new InsertAuthResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + return new InsertAuthResDto(ApiResponseCode.SUCCESS); } /** @@ -312,9 +388,44 @@ public class SysMgtService { * @param paramMap * @return */ - public ApiResponseMessage updateAuth(Map paramMap) { - ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS); - return result; + public UpdateAuthResDto updateAuth(UpdateAuthReqDto updateAuthReqDto, String regId) { + SysMgtMapper sysMgtMapper = sqlSessionMaster.getMapper(SysMgtMapper.class); + Map authParamMap = new HashMap(); + Map authMenuParamMap = new HashMap(); + List reqAuthMenuList = new ArrayList(); + + try { + // 권한 데이터 수정 + authParamMap.put("authCd", updateAuthReqDto.getAuthCd()); + authParamMap.put("authNm", updateAuthReqDto.getAuthNm()); + authParamMap.put("authDesc", updateAuthReqDto.getAuthDesc()); + authParamMap.put("stat", updateAuthReqDto.getStat()); + authParamMap.put("regId", regId); + + sysMgtMapper.updateAuth(authParamMap); + + // 권한메뉴 수정 (기존 권한메뉴 등록데이터 삭제 후 등록) + // 1. 기존 권한메뉴 데이터 삭제 + sysMgtMapper.deleteAuthMenu(authParamMap); + + // 2. 권한메뉴 데이터 등록 + reqAuthMenuList = updateAuthReqDto.getList(); + + for(int i =0; i(); + authMenuParamMap.put("authCd", authParamMap.get("authCd")); + authMenuParamMap.put("regId", regId); + authMenuParamMap.put("menuNo", reqAuthMenuList.get(i).getMenuNo()); + + sysMgtMapper.insertAuthMenu(authMenuParamMap); + } + + } catch (Exception e) { + // TODO: handle exception + return new UpdateAuthResDto(ApiResponseCode.CM_DB_QUERY_ERR); + } + + return new UpdateAuthResDto(ApiResponseCode.SUCCESS); } } diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetail.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetail.java new file mode 100644 index 0000000..59f99fd --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetail.java @@ -0,0 +1,26 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.api.sysMgt.SysMgtMapper; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.utils.EncryptionUtil; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AuthDetail implements Serializable { + + @ApiModelProperty(example = "권한코드", name = "권한코드", dataType = "String") + private String authCd; + @ApiModelProperty(example = "권한명", name = "권한명", dataType = "String") + private String authNm; + @ApiModelProperty(example = "권한설명", name = "권한설명", dataType = "String") + private String authDesc; + @ApiModelProperty(example = "권한상태", name = "권한상태", dataType = "String") + private String authStat; + + private List list; +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailReqDto.java new file mode 100644 index 0000000..b2a6642 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailReqDto.java @@ -0,0 +1,14 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AuthDetailReqDto implements Serializable{ + + @ApiModelProperty(example = "권한코드", name = "권한코드", dataType = "String") + String authCd; +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailResDto.java new file mode 100644 index 0000000..5cf095b --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthDetailResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.sysMgt.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 AuthDetailResDto extends ResponseMessage implements Serializable { + + //데이터 + private AuthDetail data; + + public AuthDetailResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public AuthDetailResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public AuthDetailResDto(ApiResponseCode returnStr, AuthDetail data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthInfo.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthInfo.java new file mode 100644 index 0000000..e919ff0 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthInfo.java @@ -0,0 +1,23 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AuthInfo implements Serializable { + + @ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String") + private String no; + @ApiModelProperty(example = "권한 코드", name = "권한 코드", dataType = "String") + private String authCd; + @ApiModelProperty(example = "권한명", name = "권한명", dataType = "String") + private String authNm; + @ApiModelProperty(example = "권한상태", name = "권한상태", notes = "01:사용/ 02:중지", dataType = "String") + private String authStat; + @ApiModelProperty(example = "등록일", name = "등록일", notes = "YYYY-MM-DD", dataType = "String") + private String regDt; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListRes.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListRes.java new file mode 100644 index 0000000..4c666bd --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListRes.java @@ -0,0 +1,14 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AuthListRes implements Serializable{ + + private List list; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListResDto.java new file mode 100644 index 0000000..4128a92 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthListResDto.java @@ -0,0 +1,33 @@ +package kr.co.uplus.ez.api.sysMgt.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 AuthListResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private AuthListRes data; + + public AuthListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public AuthListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public AuthListResDto(ApiResponseCode returnStr, AuthListRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + + +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenu.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenu.java new file mode 100644 index 0000000..6fad0a4 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenu.java @@ -0,0 +1,24 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class AuthMenu implements Serializable{ + + @ApiModelProperty(example = "메뉴번호", name = "메뉴번호", dataType = "String") + private String menuNo; + @ApiModelProperty(example = "상위메뉴번호", name = "상위메뉴번호", dataType = "String") + private String upperMenuNo; + @ApiModelProperty(example = "메뉴명", name = "메뉴명", dataType = "String") + private String name; + @ApiModelProperty(example = "메뉴순서", name = "메뉴순서", dataType = "String") + private String menuOrder; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "메뉴레벨", name = "메뉴레벨", dataType = "String") + private String menuLv; +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAdminReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAdminReqDto.java index 0b04c8f..5977c68 100644 --- a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAdminReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAdminReqDto.java @@ -12,4 +12,4 @@ public class DeleteAdminReqDto implements Serializable { // 삭제 대상 List. private List list; -} \ No newline at end of file +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthReqDto.java new file mode 100644 index 0000000..c7c3b38 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthReqDto.java @@ -0,0 +1,18 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; + +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class DeleteAuthReqDto implements Serializable { + + @NotNull + @ApiModelProperty(example = "권한코드", name = "권한코드", dataType = "String") + private String authCd; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthResDto.java new file mode 100644 index 0000000..83d1021 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/DeleteAuthResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.sysMgt.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 DeleteAuthResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private DeleteAuthReqDto data; + + public DeleteAuthResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public DeleteAuthResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public DeleteAuthResDto(ApiResponseCode returnStr, DeleteAuthReqDto data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthReqDto.java new file mode 100644 index 0000000..125f553 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthReqDto.java @@ -0,0 +1,25 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@SuppressWarnings("serial") +@Data +public class InsertAuthReqDto implements Serializable{ + + @ApiModelProperty(example = "권한코드", name = "권한코드", dataType = "String") + private String authCd; + @ApiModelProperty(example = "권한명", name = "권한명", dataType = "String") + private String authNm; + @ApiModelProperty(example = "권한설명", name = "권한설명", dataType = "String") + private String authDesc; + @ApiModelProperty(example = "권한상태", name = "권한상태", dataType = "String") + private String stat; + + private List list; +} + diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthResDto.java new file mode 100644 index 0000000..18a99cf --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/InsertAuthResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.sysMgt.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 InsertAuthResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private DeleteAuthReqDto data; + + public InsertAuthResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public InsertAuthResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public InsertAuthResDto(ApiResponseCode returnStr, DeleteAuthReqDto data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthReqDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthReqDto.java new file mode 100644 index 0000000..a55f76e --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthReqDto.java @@ -0,0 +1,24 @@ +package kr.co.uplus.ez.api.sysMgt.dto; + +import java.io.Serializable; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class UpdateAuthReqDto implements Serializable { + + @ApiModelProperty(example = "권한코드", name = "권한코드", dataType= "String") + private String authCd; + @ApiModelProperty(example = "권한명", name = "권한명", dataType= "String") + private String authNm; + @ApiModelProperty(example = "권한설명", name = "권한설명", dataType= "String") + private String authDesc; + @ApiModelProperty(example = "권한상태", name = "권한상태", dataType= "String") + private String stat; + + private List list; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthResDto.java new file mode 100644 index 0000000..1032383 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/UpdateAuthResDto.java @@ -0,0 +1,31 @@ +package kr.co.uplus.ez.api.sysMgt.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 UpdateAuthResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private Object data; + + public UpdateAuthResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UpdateAuthResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UpdateAuthResDto(ApiResponseCode returnStr, Object data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } +} \ No newline at end of file diff --git a/src/main/java/kr/co/uplus/ez/common/components/ValidComponents.java b/src/main/java/kr/co/uplus/ez/common/components/ValidComponents.java new file mode 100644 index 0000000..ffb9755 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/common/components/ValidComponents.java @@ -0,0 +1,40 @@ +package kr.co.uplus.ez.common.components; + +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.validation.ObjectError; + +@Component +public class ValidComponents { + + private static final Logger logger = LoggerFactory.getLogger(ValidComponents.class); + + /** + * 파라미터 검증. + * + * @param bindingResult + * @return boolean + */ + public boolean validParameter(BindingResult bindingResult) { + if(bindingResult.hasErrors()) { + StringBuffer sb = new StringBuffer(); + List objectErrors = bindingResult.getAllErrors(); + + objectErrors.forEach(objectError -> { + FieldError fieldError = (FieldError) objectError; + String field = fieldError.getField(); + String message = fieldError.getDefaultMessage(); + sb.append("field : " + field + "\n"); + sb.append("message : " + message + "\n"); + }); + logger.debug("adminList parm Error : {}", sb.toString()); + return true; + } + return false; + } +} diff --git a/src/main/java/kr/co/uplus/ez/common/data/ApiResponseCode.java b/src/main/java/kr/co/uplus/ez/common/data/ApiResponseCode.java index 9507759..d726450 100644 --- a/src/main/java/kr/co/uplus/ez/common/data/ApiResponseCode.java +++ b/src/main/java/kr/co/uplus/ez/common/data/ApiResponseCode.java @@ -2,43 +2,67 @@ package kr.co.uplus.ez.common.data; public enum ApiResponseCode { - RESULT_CODE("resultCode") - , RESULT_MSG("resultMsg") - , SUCCESS("0000", "성공") + RESULT_CODE("resultCode"), RESULT_MSG("resultMsg") + /** 성공. */ + ,SUCCESS("0000", "성공") // 공통 - , CM_UNISSUED_APPLICATIONID("1001", "미발급된 ApplicationID") - , CM_PARAMETER_ERROR("1002", "파라미터 오류") - , CM_MISSING_REQUIRED("1003", "필수값 누락") - , CM_NOT_FOUND("1004", "조회 결과 없음") - , CM_DB_QUERY_ERR("1009", "데이터를 처리하는 동안 오류가 발생했습니다") + /** 미발급된 ApplicationID. */ + ,CM_UNISSUED_APPLICATIONID("1001", "미발급된 ApplicationID") + /** 파라미터 오류. */ + ,CM_PARAMETER_ERROR("1002", "파라미터 오류") + /** 필수값 누락. */ + ,CM_MISSING_REQUIRED("1003", "필수값 누락") + /** 조회결과 없음. */ + ,CM_NOT_FOUND("1004", "조회 결과 없음") + /** 데이터를 처리하는 동안 오류가 발생했습니다. */ + ,CM_DB_QUERY_ERR("1009", "데이터를 처리하는 동안 오류가 발생했습니다.") // 어드민. - , CE_AUTH_TOKEN_EXPIRE ("4001", "인증토큰 만료") - , CE_REFRESH_AUTH_TOKEN_EXPIRE ("4002", "Refresh 토큰 만료") - , CE_ID_NOT_FOUND ("4003", "사용자 정보가 없습니다.") - , CE_ID_PWD ("4004", "ID/PWD 불일치") - , CE_TO_LOCK ("4005", "ID/PWD 불일치 횟수초과") - , CE_PWD_EXPIRE ("4006", "비밀번호 변경 기간 초과") - , SS_NOT_USE ("4007", "사용자 상태 오류") - , CE_ID_HP ("4008", "ID/HP 불일치") - , CE_AUTHNUM_EXPIRE ("4009", "인증시간 초과") - , CE_WRONG_AUTHNUM ("4010", "인증번호 오류") - , CE_AUTHNUM_LOCK ("4011", "인증번호 불일치 횟수초과") - , CE_TOKEN_ISSUANCE_FAILED("4012", "Access 토큰 발급 실패") - , CE_FAILED_TO_CHANGE_USER("4013", "사용자정보 변경 실패") - , CE_FAILED_TO_SEND_SMS("4014", "문자발송 실패") - , CE_FAILED_TO_SEND_EMAIL("4015", "메일발송 실패") - , CE_FAILED_TO_PW_CHANGE("4016", "비밀번호변경 실패") + /** 인증토큰 만료. */ + ,CE_AUTH_TOKEN_EXPIRE("4001", "인증토큰 만료") + /** Refresh 토큰 만료. */ + ,CE_REFRESH_AUTH_TOKEN_EXPIRE("4002", "Refresh 토큰 만료") + /** 사용자 정보가 없습니다.. */ + ,CE_ID_NOT_FOUND("4003", "사용자 정보가 없습니다.") + /** ID/PWD 불일치. */ + ,CE_ID_PWD("4004", "ID/PWD 불일치") + /** ID/PWD 불일치 횟수초과. */ + ,CE_TO_LOCK("4005", "ID/PWD 불일치 횟수초과") + /** 비밀번호 변경 기간 초과. */ + ,CE_PWD_EXPIRE("4006", "비밀번호 변경 기간 초과") + /** 사용자 상태 오류. */ + ,SS_NOT_USE("4007", "사용자 상태 오류") + /** ID/HP 불일치. */ + ,CE_ID_HP("4008", "ID/HP 불일치") + /** 인증시간 초과. */ + ,CE_AUTHNUM_EXPIRE("4009", "인증시간 초과") + /** 인증번호 오류. */ + ,CE_WRONG_AUTHNUM("4010", "인증번호 오류") + /** 인증번호 불일치 횟수초과. */ + ,CE_AUTHNUM_LOCK("4011", "인증번호 불일치 횟수초과") + /** Access 토큰 발급 실패. */ + ,CE_TOKEN_ISSUANCE_FAILED("4012", "Access 토큰 발급 실패") + /** 사용자정보 변경 실패. */ + ,CE_FAILED_TO_CHANGE_USER("4013", "사용자정보 변경 실패") + /** 문자발송 실패. */ + ,CE_FAILED_TO_SEND_SMS("4014", "문자발송 실패") + /** 메일발송 실패. */ + ,CE_FAILED_TO_SEND_EMAIL("4015", "메일발송 실패") + /** 비밀번호변경 실패. */ + ,CE_FAILED_TO_PW_CHANGE("4016", "비밀번호변경 실패") + /** 권한코드가 유효하지않습니다. */ + ,CE_SYSMGT_AUTHCODE_INVALID("4017", "권한코드가 유효하지않습니다.") + /** 이미 사용중인 아이디 입니다. */ + ,CE_DUPLICATE_ID("4018", "이미 사용중인 아이디 입니다.") // 시스템 - , SE_UNKNOWN ("9999", "알 수 없는 에러") - ; + /** 알 수 없는 에러. */ + ,SE_UNKNOWN("9999", "알 수 없는 에러"); private String resultCode; private String resultMsg; - public String getResultCode() { return resultCode; } diff --git a/src/main/java/kr/co/uplus/ez/common/data/Const.java b/src/main/java/kr/co/uplus/ez/common/data/Const.java index 5a03df3..9fa16db 100644 --- a/src/main/java/kr/co/uplus/ez/common/data/Const.java +++ b/src/main/java/kr/co/uplus/ez/common/data/Const.java @@ -5,7 +5,10 @@ import java.util.List; public class Const { + /** Yes.*/ public static final String COMM_YES = "Y"; + /** No.*/ + public static final String COMM_NO = "N"; public static final String CODE_VALUE_02 = "02"; // 코드값 02 public static final String AUTH_TP_CD = "01"; // 어드민 로그인 @@ -36,4 +39,50 @@ public class Const { public static final int MAX_AUTHNUM_FAIL = 5; // 5회 인증번호 검증 실패하면 발행 잠김 public static final int AUTHNUM_LOCK_EXPIRE_MINS = 30; // 인증번호발행 잠김 만료기간 (분) + + // 이용자 상태 코드(01:정상, 02:사용중지) + /** 이용자 상태 코드(01:정상).*/ + public static final String USER_STTUS_CD_NOMAL = "01"; + /** 이용자 상태 코드(02:사용중지).*/ + public static final String USER_STTUS_CD_STOP = "02"; + + // 이용자 유형 코드(01:관리자ID, 02: 사용자ID, 03:테스트ID) + /** 이용자 유형 코드(01:관리자).*/ + public static final String USER_TP_CD_ADM = "01"; + /** 이용자 유형 코드(02:사용자ID).*/ + public static final String USER_TP_CD_USR = "02"; + /** 이용자 유형 코드(03:테스트ID).*/ + public static final String USER_TP_CD_TEST = "03"; + + + // 발송라인타입코드(NORMAL : 일반, REAL:실시간, BATCH:배치) + /** 발송라인타입코드(NORMAL : 일반).*/ + public static final String LINE_TP_CD_NORMAL = "NORMAL"; + /** 발송라인타입코드(REAL:실시간).*/ + public static final String LINE_TP_CD_REAL = "REAL"; + /** 발송라인타입코드(BATCH:배치).*/ + public static final String LINE_TP_CD_BATCH = "BATCH"; + + /** 사용자 권한 (H001 관리자).*/ + public static final String USER_AUTCD_ADM = "H001"; + /** 사용자 권한 (H002 사용자).*/ + public static final String USER_AUTCD_USR = "H001"; + /** 사용자 권한 (H003 비로그인).*/ + public static final String USER_AUTCD_NO_LOGIN = "H003"; + + // 가입 상태 코드(01:대기, 02:정상, 03:일시정지, 04:미납정지, 98:취소, 99:해지) + /** 가입 상태 코드(01:대기) */ + public static final String SUBS_STTUS_CD_WAIT = "01"; + /** 가입 상태 코드(02:정상) */ + public static final String SUBS_STTUS_CD_NORMAL = "02"; + /** 가입 상태 코드(03:일시정지) */ + public static final String SUBS_STTUS_CD_PAUSE = "03"; + /** 가입 상태 코드(04:미납정지) */ + public static final String SUBS_STTUS_CD_NON_PAY = "04"; + /** 가입 상태 코드(98:취소) */ + public static final String SUBS_STTUS_CD_CANCEL = "98"; + /** 가입 상태 코드(99:해지) */ + public static final String SUBS_STTUS_CD_BREAK = "99"; + + } diff --git a/src/main/java/kr/co/uplus/ez/common/data/ImUser.java b/src/main/java/kr/co/uplus/ez/common/data/ImUser.java new file mode 100644 index 0000000..942f4b0 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/common/data/ImUser.java @@ -0,0 +1,37 @@ +package kr.co.uplus.ez.common.data; + +import java.io.Serializable; + +import lombok.Data; + +/** + * 마당아이디 정보. + */ +@SuppressWarnings("serial") +@Data +public class ImUser implements Serializable { + + /** 로그인_ID . */ + private String loginId; + /** 이름 . */ + private String name; + /** 사용자_코드 . */ + private String userCode; + /** 상태 . */ + private String status; + /** 메일주소 . */ + private String email; + /** 이동전화번호 . */ + private String mobile; + /** 사원_구분_코드 . */ + private String exEmpDvCd; + /** 사용자_프로비전_구. */ + private String exProvusertype; + /** 재직_상태_코드 . */ + private String exHofcSttsCd; + /** 소속_조직_코드 . */ + private String exDeptCd; + /** 소속_조직_레벨 . */ + private String exDeptLevel; + +} diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 67f2ff6..1d1497a 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -35,4 +35,17 @@ schedule: # 2차인증 제외 ID목록. authentication: without: - id: jambler01,jambler02,jambler03,jambler04,jambler05,jambler06 \ No newline at end of file + id: jambler01,jambler02,jambler03,jambler04,jambler05,jambler06 + + +testId: + prodCd: LPZ0045389 + rpsnBday: 19800101 + brno: 1234567890 + cono: 9876543210987 + zipCd: 04389 + badr: 서울특별시 용산구 한강대로 32 + dadr: 0층 + cmpyNm: 임시회사 + paymMthd: 2 + custTyCd: 02 \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/comm/comm-mapper.xml b/src/main/resources/mapper/mysql/comm/comm-mapper.xml index 4921ebd..b50712e 100644 --- a/src/main/resources/mapper/mysql/comm/comm-mapper.xml +++ b/src/main/resources/mapper/mysql/comm/comm-mapper.xml @@ -44,8 +44,8 @@ ,T2.DTL_CD_NM as codeNm ,T2.SORT_ODRG as sortOrder ,T2.USE_YN as useYn - FROM ${HUBEZ_ADMIN}.EZ_CD_GRP T1 - LEFT JOIN ${HUBEZ_ADMIN}.EZ_CD_DTL T2 + FROM ${HUBEZ_COMMON}.EZ_CD_GRP T1 + LEFT JOIN ${HUBEZ_COMMON}.EZ_CD_DTL T2 ON T1.GRP_CD = T2.GRP_CD WHERE T1.GRP_CD = #{grpCd} ORDER BY T2.SORT_ODRG diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 24f188e..b370fb5 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -16,8 +16,8 @@ ON eci.CUST_SEQ = esi.CUST_SEQ AND esi.CUST_SEQ = esu.CUST_SEQ - WHERE - esi.SUBS_DT = ]]> STR_TO_DATE('20220101', '%Y%m%d') + WHERE 1 = 1 + + + + AND esi.SUBS_DT = ]]> STR_TO_DATE(REPLACE( #{startDt}, '-', '' ), '%Y%m%d') + + + AND esi.SUBS_DT STR_TO_DATE(REPLACE( #{endDt}, '-', '' ), '%Y%m%d') + - AND T1.AUT_CD = #{searchType1} + AND esu.USER_STTUS_CD = #{searchType1} - AND T1.STTUS_CD = #{searchType2} + AND esu.USER_TP_CD = #{searchType2} - - AND T1.OPRTR_ID = #{searchText1} - - - AND UPPER(T1.OPRTR_NM) LIKE UPPER('%' + #{searchText2} + '%') + + + AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND esi.ENTR_NO = #{searchText1} + + + AND esu.USER_ID = #{searchText1} + + + /* custMgt-mapper.xml(insertSvcUser) */ + INSERT + INTO + ${HUBEZ_COMMON}.EZ_SVC_USER( + USER_SEQ, + USER_ID, + USER_NM, + USER_STTUS_CD, + PRNTS_USER_SEQ, + CUST_SEQ, + USER_TP_CD, + PWD, + BIZR_AUTH_YN, + LINE_TP_CD, + HP_NO, + EMAIL, + AUTHCD_080, + AUT_CD, + LOGIN_FAIL_CNT, + REG_ID, + REG_DT, + CHG_ID, + CHG_DT + )VALUES( + ${HUBEZ_ADMIN}.FUN_GET_USER_SEQ(), + #{userId}, + #{userNm}, + #{userStat}, + #{prntsUserSeq}, + ${HUBEZ_ADMIN}.FUN_GET_CUST_SEQ(), + #{userTpCd}, + #{userPw}, + #{bizrAuthYn}, + #{lineTpCd}, + #{hpNo}, + #{email}, + #{authcd080}, + #{autCd}, + #{loginFailCnt}, + #{regId}, + NOW(), + #{chgId}, + NOW()) + + + + /* custMgt-mapper.xml(insertUserInfo) */ + INTO + ${HUBEZ_COMMON}.EZ_SVC_USER( + USER_SEQ, + USER_ID, + USER_NM, + USER_STTUS_CD, + PRNTS_USER_SEQ, + CUST_SEQ, + USER_TP_CD, + PWD, + LINE_TP_CD, + HP_NO, + EMAIL, + AUT_CD, + LOGIN_FAIL_CNT, + REG_ID, + REG_DT, + CHG_ID, + CHG_DT + ) SELECT + ${HUBEZ_ADMIN}.FUN_GET_USER_SEQ(), + #{userId}, + #{userNm}, + #{userStat}, + esu.USER_SEQ, + esu.CUST_SEQ, + '02', -- 사용자ID + #{userPw}, + 'NORMAL', + #{mdn}, + #{userEmail}, + 'H002', + 0, + #{userId}, + NOW(), + #{userId}, + NOW() + FROM + ${HUBEZ_COMMON}.EZ_SVC_USER esu + WHERE esu.USER_ID = #{adminId} + + + + + + + + /* custMgt-mapper.xml(updateAdminInfo) */ + UPDATE ${HUBEZ_COMMON}.EZ_SUBS_INFO + SET + CHG_ID = #{serviceId} + ,CHG_DT = NOW() + + ,SUBSMNGR_ID= #{adminId} + + + ,SUBSMNGR_NM= #{adminNm} + + WHERE USER_SEQ = (SELECT esi.USER_SEQ + FROM ${HUBEZ_COMMON}.EZ_SUBS_INFO esi + INNER JOIN ${HUBEZ_COMMON}.EZ_SVC_USER esu + ON esu.USER_SEQ = esi.USER_SEQ + WHERE esu.USER_TP_CD = '01' + AND esu.USER_ID = #{serviceId}) + + + + /* custMgt-mapper.xml(updateUserInfo) */ + UPDATE ${HUBEZ_COMMON}.EZ_SVC_USER + SET + CHG_ID = #{userId} + ,CHG_DT = NOW() + + ,USER_NM = #{userNm} + + + ,USER_STTUS_CD = #{userStat} + + + ,PWD = #{userPw} + + + ,HP_NO = #{mdn} + + + ,EMAIL = #{userEmail} + + WHERE USER_ID = #{userId} + + + + + + + + + + + + + AND esu.REG_DT = ]]> STR_TO_DATE(REPLACE( #{startDt}, '-', '' ), '%Y%m%d') + + + AND esu.REG_DT STR_TO_DATE(REPLACE( #{endDt}, '-', '' ), '%Y%m%d') + + + AND esu.USER_STTUS_CD = #{searchType1} + + + AND esu.USER_TP_CD = #{searchType2} + + + + AND esu.USER_ID = #{searchText1} + + + AND UPPER(esu.USER_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND esu.USER_SEQ = (SELECT PRNTS_USER_SEQ FROM ${HUBEZ_COMMON}.EZ_SVC_USER WHERE USER_ID = #{searchText1}) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* custMgt-mapper.xml(insertCustInfo) */ + INSERT + INTO + ${HUBEZ_COMMON}.EZ_CUST_INFO( + BIZRNO, + CUST_NM, + CUST_TY_CD, + CORPNO, + REPR_NM, + BRTHDY, + ZIPCD, + ADDR1, + ADDR2, + REG_ID, + REG_DT, + CHG_ID, + CHG_DT + )VALUES( + #{bizrno}, + #{custNm}, + #{custTyCd}, + #{corpno}, + #{reprNm}, + #{brthdy}, + #{zipcd}, + #{addr1}, + #{addr2}, + #{regId}, + NOW(), + #{regId}, + NOW() + ) + + + + + /* custMgt-mapper.xml(insertSvcUserInfo) */ + INSERT INTO ${HUBEZ_COMMON}.EZ_SVC_USER( + USER_SEQ + ,USER_ID + ,USER_NM + ,USER_STTUS_CD + ,PRNTS_USER_SEQ + ,CUST_SEQ + ,USER_TP_CD + ,PWD + ,BIZR_AUTH_YN + ,LINE_TP_CD + ,HP_NO + ,EMAIL + ,AUTHCD_080 + ,AUT_CD + ,LOGIN_FAIL_CNT + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + )VALUES( + #{userSeq} + , #{userId} + , #{userNm} + , #{userSttusCd} + , #{userSeq} + , #{custSeq} + , #{userTpCd} + , sha2(concat(#{userId}, #{pwd}), 512) + , #{bizrAuthYn} + , #{lineTpCd} + , #{hpNo} + , #{email} + , #{authcd080} + , #{autCd} + , 0 + , #{regId} + , now() + , #{regId} + , now() + ) + + + + + /* custMgt-mapper.xml(insertSubsInfo) */ + INSERT INTO ${HUBEZ_COMMON}.EZ_SUBS_INFO( + SUBS_ID + ,USER_SEQ + ,CUST_SEQ + ,SUBS_STTUS_CD + ,PROD_CD + ,SUBS_DT + ,OPN_DT + ,BIND_DC_YN + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + )values( + #{subsId} + , #{userSeq} + , #{custSeq} + , #{subsSttusCd} + , #{prodCd} + , #{subsDt} + , NOW() + , #{bindDcYn} + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + + /* custMgt-mapper.xml(deleteMemo) */ + DELETE FROM ${HUBEZ_COMMON}.EZ_USER_MEMO + WHERE SEQ_NO = #{seqNo} + AND USER_SEQ = #{userSeq} + + + + /* custMgt-mapper.xml(deleteUserList) */ + DELETE from hubez_common.EZ_SVC_USER + WHERE PRNTS_USER_SEQ = (SELECT USER_SEQ FROM ${HUBEZ_COMMON}.EZ_SVC_USER WHERE USER_ID = #{adminId} ) + + USER_ID IN + + #{item.userId} + + + and USER_TP_CD = '02' + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/login/login-mapper.xml b/src/main/resources/mapper/mysql/login/login-mapper.xml index 50f1162..d106321 100644 --- a/src/main/resources/mapper/mysql/login/login-mapper.xml +++ b/src/main/resources/mapper/mysql/login/login-mapper.xml @@ -17,12 +17,12 @@ , T1.LAST_LOGIN_DT , T1.LOGIN_FAIL_CNT , T1.PWD_CHG_DT - , T2.AGENCY_CD - , T2.ACC_NM - , T2.ACC_STTUS_CD + , T2.USER_CODE + , T2.NAME + , T2.STATUS FROM ${HUBEZ_ADMIN}.EZ_ADM_USER T1 - LEFT JOIN ${HUBEZ_IMDB}.EZ_MD_ACC T2 ON T1.OPRTR_ID = T2.MD_ID + LEFT JOIN ${HUBEZ_IMDB}.EZ_IM_USER T2 ON T1.OPRTR_ID = T2.LOGIN_ID WHERE T1.OPRTR_ID = #{oprtrId} @@ -84,7 +84,7 @@ END AS PW_CHANGE_CHECK FROM ${HUBEZ_ADMIN}.EZ_ADM_USER T1 - LEFT JOIN ${HUBEZ_IMDB}.EZ_MD_ACC T2 ON T1.OPRTR_ID = T2.MD_ID + LEFT JOIN ${HUBEZ_IMDB}.EZ_IM_USER T2 ON T1.OPRTR_ID = T2.LOGIN_ID WHERE 1 = 1 AND T1.OPRTR_ID = #{oprtrId} diff --git a/src/main/resources/mapper/mysql/servMgt/servMgt-mapper.xml b/src/main/resources/mapper/mysql/servMgt/servMgt-mapper.xml index 87069d9..d971466 100644 --- a/src/main/resources/mapper/mysql/servMgt/servMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/servMgt/servMgt-mapper.xml @@ -3,5 +3,78 @@ + + + + + + + + AND esi.SUBS_STTUS_CD = '99' + + + AND esi.SUBS_STTUS_CD != '99' + + + + + + + + and UPPER(eci.CUST_NM) LIKE CONCAT('%' , UPPER(#{searchText1}) , '%') + + + and eci.BIZRNO = #{searchText1} + + + and esu.AUTHCD_080 = #{searchText1} + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml b/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml index b46ae36..d99996a 100644 --- a/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml @@ -3,65 +3,75 @@ - /* sysMgt-mapper.xml(selectAdmUserTotalCnt) */ SELECT - COUNT(*) + COUNT(*) FROM - ${HUBEZ_ADMIN}.EZ_ADM_USER T1 - LEFT JOIN ${HUBEZ_IMDB}.EZ_MD_ACC T2 ON T1.OPRTR_ID = T2.MD_ID + ${HUBEZ_ADMIN}.EZ_ADM_USER T1 + LEFT JOIN ${HUBEZ_IMDB}.EZ_IM_USER T2 ON T1.OPRTR_ID = T2.LOGIN_ID WHERE 1 = 1 - /* sysMgt-mapper.xml(selectAdminList) */ SELECT - @ROWNUM := @ROWNUM + 1 AS NO, - A.* + @ROWNUM := @ROWNUM + 1 AS NO, + A.* FROM - ( + ( SELECT - (SELECT AUT_NM FROM ${HUBEZ_ADMIN}.EZ_ADM_AUT WHERE AUT_CD = T1.AUT_CD) AS AUTH - , T1.OPRTR_NM AS NAME - , T1.OPRTR_ID AS ADMIN_ID - ,(SELECT DTL_CD_NM FROM ${HUBEZ_ADMIN}.EZ_CD_DTL WHERE GRP_CD = 'SUBS_STTUS_CD' AND DTL_CD = T1.STTUS_CD) AS ADMIN_STAT - , DATE_FORMAT(T1.REG_DT, '%Y-%m-%d') AS REG_DT + (SELECT AUT_NM FROM ${HUBEZ_ADMIN}.EZ_ADM_AUT WHERE AUT_CD = T1.AUT_CD) AS + AUTH + , T1.OPRTR_NM AS NAME + , T1.OPRTR_ID AS ADMIN_ID + ,(SELECT DTL_CD_NM FROM ${HUBEZ_COMMON}.EZ_CD_DTL WHERE GRP_CD = + 'SUBS_STTUS_CD' AND DTL_CD = T1.STTUS_CD) AS ADMIN_STAT + , DATE_FORMAT(T1.REG_DT, '%Y-%m-%d') AS REG_DT FROM - ${HUBEZ_ADMIN}.EZ_ADM_USER T1 - LEFT JOIN ${HUBEZ_IMDB}.EZ_MD_ACC T2 ON T1.OPRTR_ID = T2.MD_ID + ${HUBEZ_ADMIN}.EZ_ADM_USER T1 + LEFT JOIN ${HUBEZ_IMDB}.EZ_IM_USER T2 ON T1.OPRTR_ID = T2.LOGIN_ID WHERE 1 = 1 ORDER BY T1.REG_DT DESC LIMIT #{page}, #{pagePerRows}) A, - ( SELECT @ROWNUM := #{page} ) AS R + ( SELECT @ROWNUM := #{page} ) AS R - /* sysMgt-mapper.xml(selectSearchMadangId) */ SELECT - MD_ID AS madangId - ,ACC_NM AS name - ,HP_NO AS mdn - ,EMAIL AS email - ,ACC_STTUS_CD AS code + LOGIN_ID AS madangId + ,NAME AS name + ,MOBILE AS mdn + ,EMAIL AS email + ,USER_CODE AS code FROM - ${HUBEZ_IMDB}.EZ_MD_ACC + ${HUBEZ_IMDB}.EZ_IM_USER WHERE MD_ID = #{madangId} - /* sysMgt-mapper.xml(selectAdminDetail) */ SELECT - OPRTR_ID AS adminId - ,OPRTR_NM AS name - ,HP_NO AS mdn - ,EMAIL AS email - ,AUT_CD AS auth - ,STTUS_CD AS stat - /* 유치채널 코드 컬럼 확인 필요 */ + OPRTR_ID AS adminId + ,OPRTR_NM AS name + ,HP_NO AS mdn + ,EMAIL AS email + ,AUT_CD AS auth + ,STTUS_CD AS stat + /* 유치채널 코드 컬럼 확인 필요 */ FROM - ${HUBEZ_ADMIN}.EZ_ADM_USER + ${HUBEZ_ADMIN}.EZ_ADM_USER WHERE OPRTR_ID = #{adminId} @@ -76,119 +86,272 @@ AND T1.OPRTR_ID = #{searchText1} - AND UPPER(T1.OPRTR_NM) LIKE UPPER('%' + #{searchText2} + '%') + AND UPPER(T1.OPRTR_NM) LIKE UPPER('%' + #{searchText2} + + '%') - + /* sysMgt-mapper.xml(insertAdmUser) */ - INSERT INTO ${HUBEZ_ADMIN}.EZ_ADM_USER( - OPRTR_ID - , OPRTR_NM - , STTUS_CD - , PWD - , EMAIL - , HP_NO - , AUT_CD - , PWD_CHG_DT - , AUTHCHR_FAIL_CNT - , LOGIN_FAIL_CNT - , REG_ID - , REG_DT - , CHG_ID - , CHG_DT) + INSERT INTO + ${HUBEZ_ADMIN}.EZ_ADM_USER( + OPRTR_ID + , OPRTR_NM + , STTUS_CD + , PWD + , EMAIL + , HP_NO + , AUT_CD + , PWD_CHG_DT + , AUTHCHR_FAIL_CNT + , LOGIN_FAIL_CNT + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT) VALUES ( - #{madangId} - , #{name} - , #{stat} - , #{adminPw} - , #{email} - , #{mdn} - , #{auth} - , NOW() - , 0 - , 0 - , #{madangId} - , NOW() - , #{madangId} - , NOW() + #{madangId} + , #{name} + , #{stat} + , #{adminPw} + , #{email} + , #{mdn} + , #{auth} + , NOW() + , 0 + , 0 + , #{madangId} + , NOW() + , #{madangId} + , NOW() ) - - /* sysMgt-mapper.xml(updateAdmUser) */ - UPDATE ${HUBEZ_ADMIN}.EZ_ADM_USER - SET - CHG_ID = #{adminId} - , CHG_DT = NOW() - - , PWD = #{adminPw} - , PWD_CHG_DT = NOW() - - - , AUT_CD = #{auth} - + + + + /* sysMgt-mapper.xml(insertAuth) */ + INSERT INTO + ${HUBEZ_ADMIN}.EZ_ADM_AUT( + AUT_CD + ,AUT_NM - , STTUS_CD = #{stat} + ,USE_YN - WHERE OPRTR_ID = #{adminId} + ,AUT_DESC + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + ) + VALUES ( + #{authCd} + ,#{authNm} + + + ,'Y' + ,'N' + + + ,#{authDesc} + ,#{regId} + ,NOW() + ,#{regId} + ,NOW() + ) + + + + /* sysMgt-mapper.xml(insertAuth) */ + INSERT INTO + ${HUBEZ_ADMIN}.EZ_ADM_AUTMENU( + AUT_CD + ,MENU_NO + ,REG_ID + ,REG_DT + ) + VALUES ( + #{authCd} + ,#{menuNo} + ,#{regId} + ,NOW() + ) + + + + /* sysMgt-mapper.xml(updateAdmUser) */ + UPDATE + ${HUBEZ_ADMIN}.EZ_ADM_USER + SET + CHG_ID = #{adminId} + , CHG_DT = NOW() + + , PWD = #{adminPw} + , PWD_CHG_DT = NOW() + + + , AUT_CD = #{auth} + + + , STTUS_CD = #{stat} + + WHERE OPRTR_ID = #{adminId} - + + /* sysMgt-mapper.xml(updateAuth) */ + UPDATE ${HUBEZ_ADMIN}.EZ_ADM_AUT + SET + CHG_ID = #{regId} + ,CHG_DT = NOW() + + ,AUT_NM = #{authNm} + + + + + ,USE_YN = 'Y' + + + ,USE_YN = 'N' + + + + + ,AUT_DESC = #{authDesc} + + WHERE + AUT_CD = #{authCd} + + + /* sysMgt-mapper.xml(insertMdAcc) */ - INSERT INTO ${HUBEZ_IMDB}.EZ_MD_ACC( - MD_ID - , ACC_NM - , AGENCY_CD - , AGENCY_NM - , ACC_STTUS_CD - , HP_NO - , EMAIL - , REG_ID - , REG_DT - , CHG_ID - , CHG_DT) + INSERT INTO + ${HUBEZ_IMDB}.EZ_IM_USER( + LOGIN_ID + , NAME + , USER_CODE + , STATUS + , MOBILE + , EMAIL + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT) VALUES ( - #{madangId} - , #{name} - , #{stat} - , #{adminPw} - , #{email} - , #{mdn} - , #{auth} - , NOW() - , #{madangId} - , NOW() - , #{madangId} - , NOW() + #{madangId} + , #{name} + , #{stat} + , #{adminPw} + , #{email} + , #{mdn} + , #{auth} + , NOW() + , #{madangId} + , NOW() + , #{madangId} + , NOW() ) - + /* sysMgt-mapper.xml(updateMdAcc) */ - UPDATE ${HUBEZ_IMDB}.EZ_MD_ACC - SET - CHG_ID - , CHG_DT = NOW() - - , PWD = #{adminPw} - , PWD_CHG_DT = NOW() - - - , STTUS_CD = #{stat} - - WHERE MD_ID = #{adminId} + UPDATE ${HUBEZ_IMDB}.EZ_IM_USER + SET + CHG_ID + , CHG_DT = NOW() + + , PWD = #{adminPw} + , PWD_CHG_DT = NOW() + + + , STTUS_CD = #{stat} + + WHERE LOGIN_ID = #{adminId} /* sysMgt-mapper.xml(deleteAdminList) */ - DELETE FROM ${HUBEZ_ADMIN}.EZ_ADM_USER + DELETE FROM + ${HUBEZ_ADMIN}.EZ_ADM_USER - OPRTR_ID IN - - #{item.adminId} - - + OPRTR_ID IN + + #{item.adminId} + + + + /* sysMgt-mapper.xml(deleteAuth) */ + DELETE FROM + ${HUBEZ_ADMIN}.EZ_ADM_AUT + WHERE AUT_CD = #{authCd} + + + + /* sysMgt-mapper.xml(deleteAuthMenu) */ + DELETE FROM + ${HUBEZ_ADMIN}.EZ_ADM_AUTMENU + WHERE AUT_CD = #{authCd} + + + + + + + + \ No newline at end of file