From 20f6b0c44d1a90749f731ecafe97b8f6985735f3 Mon Sep 17 00:00:00 2001 From: won503 Date: Tue, 7 Mar 2023 10:28:59 +0900 Subject: [PATCH 01/28] =?UTF-8?q?=EC=96=B4=EB=93=9C=EB=AF=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=EC=9A=94=EA=B1=B4=20=EA=B0=9C=EB=B0=9C=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ez/api/custMgt/CustMgtController.java | 48 +++++++++++ .../uplus/ez/api/custMgt/CustMgtMapper.java | 9 +++ .../uplus/ez/api/custMgt/CustMgtService.java | 72 +++++++++++++++++ .../uplus/ez/api/custMgt/dto/UserLmtList.java | 27 +++++++ .../custMgt/dto/UserLmtListExcelReqDto.java | 28 +++++++ .../custMgt/dto/UserLmtListExcelResDto.java | 28 +++++++ .../ez/api/custMgt/dto/UserLmtListReqDto.java | 29 +++++++ .../ez/api/custMgt/dto/UserLmtListRes.java | 15 ++++ .../ez/api/custMgt/dto/UserLmtListResDto.java | 30 +++++++ .../mapper/mysql/custMgt/custMgt-mapper.xml | 79 +++++++++++++++++++ 10 files changed, 365 insertions(+) create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListResDto.java 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 470fb46..3732eaf 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 @@ -57,6 +57,10 @@ import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoTotalReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoTotalResDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateUserReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateUserResDto; +import kr.co.uplus.ez.api.custMgt.dto.UserLmtListExcelReqDto; +import kr.co.uplus.ez.api.custMgt.dto.UserLmtListExcelResDto; +import kr.co.uplus.ez.api.custMgt.dto.UserLmtListReqDto; +import kr.co.uplus.ez.api.custMgt.dto.UserLmtListResDto; import kr.co.uplus.ez.common.components.ValidComponents; import kr.co.uplus.ez.common.data.ApiResponseCode; import kr.co.uplus.ez.common.data.ApiResponseMessage; @@ -476,5 +480,49 @@ public class CustMgtController { } return custService.duplicateCheckUserId(insertUserReqDto); } + + /** + * date : 2023. 1. 1. + * auth : ckr + * desc : 요금제 구매 내역 목록 조회 + * @param UserLmtListReqDto + * @return UserLmtListRestDto + * @ + */ + @ApiOperation(value = "BLNCList", notes = "요금제 구매 내역 목록 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value = "/BLNCList" , method = {RequestMethod.POST}) + @ResponseBody + public UserLmtListResDto BLNCList(@RequestBody @Valid UserLmtListReqDto userLmtListReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new UserLmtListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.BLNCList(userLmtListReqDto); + } + + /** + * date : 2023. 1. 1. + * auth : ckr + * desc : 요금제 구매 내역 정보 목록 엑셀 다운로드 + * + * @param userLmtListExcelReqDto + * @return UserLmtListExcelResDto + * @ + */ + @ApiOperation(value = "BLNCListExcel", notes = "청약 고객 정보 목록 엑셀 다운로드") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value = "/BLNCListExcel" , method = {RequestMethod.POST}) + @ResponseBody + public UserLmtListExcelResDto BLNCListExcel(@RequestBody @Valid UserLmtListExcelReqDto userLmtListExcelReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new UserLmtListExcelResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return custService.userLmtListExcel(userLmtListExcelReqDto); + } } 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 c36af77..450659e 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 @@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Mapper; import java.util.List; import java.util.Map; +import javax.validation.Valid; + @Mapper public interface CustMgtMapper { @@ -106,4 +108,11 @@ public interface CustMgtMapper { /** 결합할인여부 수정*/ int updateBindDcYn(SubsDetail subDetail); + /** 청구정보 카운트 조회.*/ + int selectUserLmtListTotalCnt(UserLmtListReqDto userLmtListReqDto); + + /** 요금제 구매 내역 정보 목록 조회.*/ + List selectBLNCLists(UserLmtListReqDto userLmtListReqDto); + /** 요금제 구매 내역 정보 엑셀 목록 조회.*/ + List selectUserLmtListsExcel(UserLmtListExcelReqDto userLmtListExcelReqDto); } 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 6a63570..3f13b11 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 @@ -25,6 +25,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.validation.Valid; + @Service public class CustMgtService { @@ -995,4 +997,74 @@ public class CustMgtService { return new InsertUserResDto(ApiResponseCode.SUCCESS); } + + /** + * date : 2023. 1. 1. + * auth : ckr + * desc : 요금제 구매 내역 목록 조회 + * @param UserLmtListReqDto + * @return UserLmtListRestDto + * @ + */ + public UserLmtListResDto BLNCList(UserLmtListReqDto userLmtListReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + String nowPage = String.valueOf(userLmtListReqDto.getPage()); + int totalCnt = custMgtMapper.selectUserLmtListTotalCnt(userLmtListReqDto); + if (totalCnt==0) { + UserLmtListRes userLmtListRes = new UserLmtListRes(); + userLmtListRes.setList(new ArrayList<>()); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + userLmtListRes.setPaging(paging); + + return new UserLmtListResDto(ApiResponseCode.CM_NOT_FOUND, userLmtListRes); + } + + int page = userLmtListReqDto.getPage(); + int pagePerRows = userLmtListReqDto.getPagePerRows(); + page = (page-1) * pagePerRows; + userLmtListReqDto.setPage(page); + + //리스트 조회 + List userlmtlist = custMgtMapper.selectBLNCLists(userLmtListReqDto); + + UserLmtListRes userLmtListRes = new UserLmtListRes(); + userLmtListRes.setList(userlmtlist); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + userLmtListRes.setPaging(paging); + + return new UserLmtListResDto(ApiResponseCode.SUCCESS, userLmtListRes); + } + + /** + * date : 2023. 1. 1. + * auth : ckr + * desc : 요금제 구매 내역 정보 목록 엑셀 다운로드 + * + * @param userLmtListExcelReqDto + * @return UserLmtListExcelResDto + */ + public UserLmtListExcelResDto userLmtListExcel(@Valid UserLmtListExcelReqDto userLmtListExcelReqDto) { + + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + UserLmtListRes userLmtListRes = new UserLmtListRes(); + //리스트 조회 + List userLmtLists = custMgtMapper.selectUserLmtListsExcel(userLmtListExcelReqDto); + + Paging paging = new Paging(); + paging.setTotalCnt(String.valueOf(userLmtLists.size())); + userLmtListRes.setPaging(paging); + userLmtListRes.setList(userLmtLists); + + return new UserLmtListExcelResDto(ApiResponseCode.SUCCESS,userLmtListRes); + } + + } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.java new file mode 100644 index 0000000..2619afb --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.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 UserLmtList implements Serializable { + + @ApiModelProperty(example = "이용자일련번호", name = "이용자일련번호", dataType = "String") + private String userSeq; + @ApiModelProperty(example = "한도년월", name = "한도년월", dataType = "String") + private String lmtYm; + @ApiModelProperty(example = "요금제확보금액", name = "요금제확보금액", dataType = "String") + private String fxlmtamt; + @ApiModelProperty(example = "이월금액", name = "이월금액", dataType = "String") + private String cfwdAmt; + @ApiModelProperty(example = "총사용금액", name = "총사용금액", dataType = "String") + private String totalamt; + @ApiModelProperty(example = "당월사용금액", name = "당월사용금액", dataType = "String") + private String ymuseamt; + @ApiModelProperty(example = "잔액", name = "잔액", dataType = "String") + private String ymblnc; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelReqDto.java new file mode 100644 index 0000000..48c3c5c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelReqDto.java @@ -0,0 +1,28 @@ +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 UserLmtListExcelReqDto implements Serializable{ + + @ApiModelProperty(example = "조회 시작 날짜", name = "조회 시작 날짜", notes = "YYYYMMDD", dataType = "String") + private String startDt; + @ApiModelProperty(example = "조회 종료 날짜", name = "조회 종료 날짜", notes = "YYYYMMDD", dataType = "String") + private String endDt; + @ApiModelProperty(example = "청약 상태", name = "청약 상태", notes = "항목 : 전체(Default)/사용(01)/미납중지(02)/일시중지(03)/해지(04)", dataType = "String") + private String searchType1; + @ApiModelProperty(example = "유치채널", name = "유치채널", notes = "항목 : 전체(Default)/고객 셀프가입(01)/대리점(02)/고객센터(03)/직접영업(04)", dataType = "String") + private String searchType2; + @ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 고객사명(01)/가입번호(02)/서비스ID(03)", dataType = "String") + private String searchType3; + @ApiModelProperty(example = "검색어 (입력항목)", name = "검색어 (입력항목)", dataType = "String") + private String searchText1; + @ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String") + private int pagePerRows; + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "String") + private int page; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelResDto.java new file mode 100644 index 0000000..330c954 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListExcelResDto.java @@ -0,0 +1,28 @@ +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; + +public class UserLmtListExcelResDto extends ResponseMessage implements Serializable{ + + private UserLmtListRes data; + + public UserLmtListExcelResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UserLmtListExcelResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UserLmtListExcelResDto(ApiResponseCode returnStr, UserLmtListRes 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/UserLmtListReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListReqDto.java new file mode 100644 index 0000000..6655979 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListReqDto.java @@ -0,0 +1,29 @@ +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 UserLmtListReqDto implements Serializable{ + + @ApiModelProperty(example = "조회 시작 날짜", name = "조회 시작 날짜", notes = "YYYYMMDD", dataType = "String") + private String startDt; + @ApiModelProperty(example = "조회 종료 날짜", name = "조회 종료 날짜", notes = "YYYYMMDD", dataType = "String") + private String endDt; + @ApiModelProperty(example = "청약 상태", name = "청약 상태", notes = "항목 : 전체(Default)/사용(01)/미납중지(02)/일시중지(03)/해지(04)", dataType = "String") + private String searchType1; + @ApiModelProperty(example = "유치채널", name = "유치채널", notes = "항목 : 전체(Default)/고객 셀프가입(01)/대리점(02)/고객센터(03)/직접영업(04)", dataType = "String") + private String searchType2; + @ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 고객사명(01)/가입번호(02)/서비스ID(03)", dataType = "String") + private String searchType3; + @ApiModelProperty(example = "검색어 (입력항목)", name = "검색어 (입력항목)", dataType = "String") + private String searchText1; + @ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String") + private int pagePerRows; + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "String") + private int page; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListRes.java new file mode 100644 index 0000000..dc4a819 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListRes.java @@ -0,0 +1,15 @@ +package kr.co.uplus.ez.api.custMgt.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 UserLmtListRes implements Serializable{ + + private List list; + private Paging paging; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListResDto.java new file mode 100644 index 0000000..d61542b --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtListResDto.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 UserLmtListResDto extends ResponseMessage implements Serializable{ + + private UserLmtListRes data; + + public UserLmtListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UserLmtListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UserLmtListResDto(ApiResponseCode returnStr, UserLmtListRes data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + +} diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 5c88977..91c608b 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1143,4 +1143,83 @@ WHERE ENTR_NO = #{entrNo} + + From bd4e8d1f6da53fa29935e9e2d96c60ebdd28239c Mon Sep 17 00:00:00 2001 From: won503 Date: Thu, 16 Mar 2023 13:20:41 +0900 Subject: [PATCH 02/28] =?UTF-8?q?admin=5Fchrg=20=EB=93=B1=EB=A1=9D/?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ez/api/custMgt/CustMgtController.java | 59 ++++- .../uplus/ez/api/custMgt/CustMgtMapper.java | 18 +- .../uplus/ez/api/custMgt/CustMgtService.java | 91 +++++++- .../co/uplus/ez/api/custMgt/dto/ChrgInfo.java | 33 +++ .../co/uplus/ez/api/custMgt/dto/ChrgList.java | 29 +++ .../ez/api/custMgt/dto/ChrgListReqDto.java | 24 +++ .../uplus/ez/api/custMgt/dto/ChrgListRes.java | 14 ++ .../ez/api/custMgt/dto/ChrgListResDto.java | 30 +++ .../ez/api/custMgt/dto/InsertChrgReqDto.java | 38 ++++ .../ez/api/custMgt/dto/InsertChrgResDto.java | 31 +++ .../mapper/mysql/custMgt/custMgt-mapper.xml | 201 +++++++++++++++++- 11 files changed, 545 insertions(+), 23 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListRes.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgResDto.java 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 3732eaf..2315971 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 @@ -29,10 +29,14 @@ 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.ChrgListReqDto; +import kr.co.uplus.ez.api.custMgt.dto.ChrgListResDto; 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.InsertChrgReqDto; +import kr.co.uplus.ez.api.custMgt.dto.InsertChrgResDto; 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; @@ -482,13 +486,57 @@ public class CustMgtController { } /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 목록 조회 + * @param + * @return + * @ + */ + @ApiOperation(value="chrgList", notes = "충전관리 목록 조회") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value="/chrgList", method = {RequestMethod.POST}) + @ResponseBody + public ChrgListResDto chrgList(@RequestBody @Valid ChrgListReqDto chrgListReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new ChrgListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.chrgList(chrgListReqDto); + } + + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 등록 + * @param paramMap + * @return + * @ + */ + @ApiOperation(value="insertChrg", notes = "충전관리 등록") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value="/insertChrg", method= {RequestMethod.POST}) + @ResponseBody + public InsertChrgResDto insertChrg (@RequestBody @Valid InsertChrgReqDto insertChrgReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new InsertChrgResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.InsertChrg(insertChrgReqDto); + } + + + /*2023-03-07 add request 부분 + * * date : 2023. 1. 1. - * auth : ckr + * auth : won * desc : 요금제 구매 내역 목록 조회 * @param UserLmtListReqDto * @return UserLmtListRestDto * @ - */ + @ApiOperation(value = "BLNCList", notes = "요금제 구매 내역 목록 조회") @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") @@ -502,15 +550,15 @@ public class CustMgtController { return custService.BLNCList(userLmtListReqDto); } - /** + * date : 2023. 1. 1. - * auth : ckr + * auth : won * desc : 요금제 구매 내역 정보 목록 엑셀 다운로드 * * @param userLmtListExcelReqDto * @return UserLmtListExcelResDto * @ - */ + @ApiOperation(value = "BLNCListExcel", notes = "청약 고객 정보 목록 엑셀 다운로드") @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") @@ -525,4 +573,5 @@ public class CustMgtController { return custService.userLmtListExcel(userLmtListExcelReqDto); } + */ } 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 450659e..779ae92 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 @@ -111,8 +111,18 @@ public interface CustMgtMapper { /** 청구정보 카운트 조회.*/ int selectUserLmtListTotalCnt(UserLmtListReqDto userLmtListReqDto); - /** 요금제 구매 내역 정보 목록 조회.*/ - List selectBLNCLists(UserLmtListReqDto userLmtListReqDto); - /** 요금제 구매 내역 정보 엑셀 목록 조회.*/ - List selectUserLmtListsExcel(UserLmtListExcelReqDto userLmtListExcelReqDto); + /**충전관리 목록 조회*/ + List selectChrgList(ChrgListReqDto chrgListReqDto); + + /**이용자 충전번호 */ + String getChrgSeq(); + /**충전관리 등록 */ + void insertChrgInfo(InsertChrgReqDto insertChrgReqDto); + + + //2023-03-07 add request 부분 +// /** 요금제 구매 내역 정보 목록 조회.*/ +// List selectBLNCLists(UserLmtListReqDto userLmtListReqDto); +// /** 요금제 구매 내역 정보 엑셀 목록 조회.*/ +// List selectBLNCListsExcel(UserLmtListExcelReqDto userLmtListExcelReqDto); } 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 3f13b11..f69357b 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 @@ -115,6 +115,7 @@ public class CustMgtService { @Value("${mail.templeteCode:E0005}") private String templeteCode; + /** * date : 2022. 4. 25. auth : ckr desc : 청약 고객 정보 목록 조회 @@ -997,15 +998,89 @@ public class CustMgtService { return new InsertUserResDto(ApiResponseCode.SUCCESS); } - + + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 목록 조회 + * @param + * @return + */ + public ChrgListResDto chrgList(ChrgListReqDto chrgListReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + List chrgList= custMgtMapper.selectChrgList(chrgListReqDto); + ChrgListRes chrgListRes = new ChrgListRes(); + chrgListRes.setList(chrgList); + + return new ChrgListResDto(ApiResponseCode.SUCCESS, chrgListRes); + } + + /** + * * date : 2023. 3. 15. + * * auth : won + * * desc : 충전관리 등록 + * @param insertChrgReqDto + * @return + */ + public InsertChrgResDto InsertChrg(@Valid InsertChrgReqDto insertChrgReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + Map reqMap = new HashMap(); + + String userId = insertChrgReqDto.getUserId(); + +// // 1. 사용자 유무 확인 +// int getUserIdCount = custMgtMapper.getUserIdCount(insertChrgReqDto.getUserId()); +// +// if (getUserIdCount < 1) { +// return new InsertChrgResDto(ApiResponseCode.CE_DUPLICATE_ID); +// } + +// // 1. 사용자 유무 확인 + SvcUserInfo svcUserInfo = custMgtMapper.selectSvcUserInfo(insertChrgReqDto.getUserId()); + + if (svcUserInfo == null) { + return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); + } + + // 2. 관리자 ID 존재 여부 체크. + SvcUserInfo svcadmUserInfo = custMgtMapper.selectSvcUserInfo(insertChrgReqDto.getAdminId()); + + if (svcadmUserInfo == null) { + return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); + } + // 3. 충전 정보 등록 + + String chrgSeq = custMgtMapper.getChrgSeq(); + String userSeq = custMgtMapper.getUserSeq(); + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + UserDetails userDetails = (UserDetails) principal; + String regId = userDetails.getUsername(); + + ChrgInfo chrgInfo = new ChrgInfo(); + chrgInfo.setChrgSeq(chrgSeq); + chrgInfo.setUserSeq(userSeq); + chrgInfo.setChrgDiv(insertChrgReqDto.getChrdDiv()); + chrgInfo.setStartDt(insertChrgReqDto.getStartDt()); + chrgInfo.setEndDt(insertChrgReqDto.getEndDt()); + chrgInfo.setChrgAmt(insertChrgReqDto.getChrgAmt()); + chrgInfo.setRegId(regId); //로그인 ID + chrgInfo.setChgId(regId); //로그인 ID + + custMgtMapper.insertChrgInfo(insertChrgReqDto); + + return new InsertChrgResDto(ApiResponseCode.SUCCESS); + } + + /* 2023-03-07 add request 부분 * date : 2023. 1. 1. - * auth : ckr + * auth : won * desc : 요금제 구매 내역 목록 조회 * @param UserLmtListReqDto * @return UserLmtListRestDto * @ - */ + public UserLmtListResDto BLNCList(UserLmtListReqDto userLmtListReqDto) { CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); @@ -1042,21 +1117,21 @@ public class CustMgtService { return new UserLmtListResDto(ApiResponseCode.SUCCESS, userLmtListRes); } - /** + * * date : 2023. 1. 1. - * auth : ckr + * auth : won * desc : 요금제 구매 내역 정보 목록 엑셀 다운로드 * * @param userLmtListExcelReqDto * @return UserLmtListExcelResDto - */ + public UserLmtListExcelResDto userLmtListExcel(@Valid UserLmtListExcelReqDto userLmtListExcelReqDto) { CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); UserLmtListRes userLmtListRes = new UserLmtListRes(); //리스트 조회 - List userLmtLists = custMgtMapper.selectUserLmtListsExcel(userLmtListExcelReqDto); + List userLmtLists = custMgtMapper.selectBLNCListsExcel(userLmtListExcelReqDto); Paging paging = new Paging(); paging.setTotalCnt(String.valueOf(userLmtLists.size())); @@ -1065,6 +1140,6 @@ public class CustMgtService { return new UserLmtListExcelResDto(ApiResponseCode.SUCCESS,userLmtListRes); } - + */ } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java new file mode 100644 index 0000000..20a0422 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java @@ -0,0 +1,33 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class ChrgInfo implements Serializable{ + + /** 충전 SEQUENCE */ + private String chrgSeq; + /** 유저 SEQUENCE */ + private String userSeq; + /** 충전구분 */ + private String chrgDiv; + /** 충전 시작년월 */ + private String startDt; + /** 충전 종료년월 */ + private String endDt; + /** 충전금액 */ + private String chrgAmt; + /** 사용여부 */ + private String useYn; + /** 등록_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/ChrgList.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java new file mode 100644 index 0000000..89ff74d --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java @@ -0,0 +1,29 @@ +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 ChrgList implements Serializable{ + + @ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "Integer") + private Integer no; + @ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String") + private String custNm; + @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") + private String userId; + @ApiModelProperty(example = "충전구분", name = "충전구분", dataType = "String") + private String chrdDiv; + @ApiModelProperty(example = "충전시작일", name = "충전시작일", dataType = "String") + private String startDt; + @ApiModelProperty(example = "충전종료일", name = "충전종료일", dataType = "String") + private String endDt; + @ApiModelProperty(example = "충전금액", name = "충전금액", dataType = "String") + private String chrgAmt; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") + private String bizrNo; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java new file mode 100644 index 0000000..2efca10 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java @@ -0,0 +1,24 @@ +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 ChrgListReqDto implements Serializable{ + + @ApiModelProperty(example = "조회 시작 날짜", name = "조회 시작 날짜", notes = "YYYYMM", dataType = "String") + private String startDt; + @ApiModelProperty(example = "조회 종료 날짜", name = "조회 종료 날짜", notes = "YYYYMM", dataType = "String") + private String endDt; + @ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 고객사명(01)/가입번호(02)/서비스ID(03)", dataType = "String") + private String searchType3; + @ApiModelProperty(example = "검색어 (입력항목)", name = "검색어 (입력항목)", dataType = "String") + private String searchText1; + @ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String") + private int pagePerRows; + @ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "String") + private int page; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListRes.java new file mode 100644 index 0000000..3f71ef7 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListRes.java @@ -0,0 +1,14 @@ +package kr.co.uplus.ez.api.custMgt.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 ChrgListRes implements Serializable{ + + private List list; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListResDto.java new file mode 100644 index 0000000..c14aa57 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListResDto.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 ChrgListResDto extends ResponseMessage implements Serializable{ + + private ChrgListRes data; + + public ChrgListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public ChrgListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public ChrgListResDto(ApiResponseCode returnStr, ChrgListRes 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/InsertChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java new file mode 100644 index 0000000..164eb47 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java @@ -0,0 +1,38 @@ +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 InsertChrgReqDto implements Serializable{ + + @ApiModelProperty(example = "관리자 ID", name = "관리자 ID", dataType = "String") + private String adminId; + @ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "Integer") + private Integer no; + @ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String") + private String custNm; + @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") + private String userId; + @ApiModelProperty(example = "충전구분", name = "충전구분", dataType = "String") + private String chrdDiv; + @ApiModelProperty(example = "충전시작일", name = "충전시작일", dataType = "String") + private String startDt; + @ApiModelProperty(example = "충전종료일", name = "충전종료일", dataType = "String") + private String endDt; + @ApiModelProperty(example = "충전금액", name = "충전금액", dataType = "String") + private String chrgAmt; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") + private String bizrNo; + + + + + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgResDto.java new file mode 100644 index 0000000..e178565 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgResDto.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 InsertChrgResDto extends ResponseMessage implements Serializable{ + + private InsertChrgResDto data; + + public InsertChrgResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public InsertChrgResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public InsertChrgResDto(ApiResponseCode returnStr, InsertChrgResDto data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + +} diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 91c608b..0e8d7c9 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1144,8 +1144,124 @@ ENTR_NO = #{entrNo} - + SELECT + @ROWNUM := @ROWNUM + 1 AS NO + , eci.CUST_NM + , esu.USER_ID + , ecm.CHRG_DIV + , ecm.STRT_YM + , ecm.END_YM + , ecm.CHRG_AMT + , ecm.USE_YN + , eci.BIZRNO + + FROM hubez_admin.EZ_CHARGE_MNG ecm + INNER JOIN hubez_common.EZ_SVC_USER esu on esu.USER_SEQ = ecm.USER_SEQ + INNER JOIN hubez_common.EZ_CUST_INFO eci on eci.CUST_SEQ = esu.CUST_SEQ + WHERE ecm.USE_YN ='Y' AND 1 =1 + + AND esi.SUBS_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%') + + + AND esi.SUBS_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%') + + + + AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(eci.BIZRNO) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + ORDER BY esu.USER_ID DESC + + + + + + + INSERT INTO hubez_admin.EZ_CHARGE_MNG ( + CHRG_SEQ + , USER_SEQ + , CHRG_DIV + , STRT_YM + , END_YM + , CHRG_AMT + , USE_YN + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT + ) + ) VALUES( + #{chrgSeq} + , #{userSeq} + , 'Y' + , #{startDt} + , #{endDt} + , #{chrgAmt} + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + hubez_admin.EZ_CHARGE_MNG + set + ecm.USE_YN ='N' + WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId}) + + + + INSERT INTO hubez_admin.EZ_CHARGE_MNG ( + CHRG_SEQ + , USER_SEQ + , CHRG_DIV + , STRT_YM + , END_YM + , CHRG_AMT + , USE_YN + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT + ) + ) VALUES( + #{chrgSeq} + , #{userSeq} + , 'Y' + , #{startDt} + , #{endDt} + , #{chrgAmt} + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + UPDATE + hubez_admin.EZ_CHARGE_MNG + set + ecm.USE_YN ='N' + WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId}) + + + + From de336d54e63642c8f6554247d14df2be95144bc8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Thu, 16 Mar 2023 13:51:26 +0900 Subject: [PATCH 03/28] =?UTF-8?q?=EC=B6=A9=EC=A0=84=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=ED=94=84=EB=A1=A0=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/modules/custMgt/router/index.js | 7 +++ .../src/modules/custMgt/views/ChrgList.vue | 46 +++++++++++++++++++ .../src/modules/custMgt/views/MemberList.vue | 1 + .../src/modules/custMgt/views/SubsList.vue | 1 + frontend/src/router.js | 3 +- 5 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 frontend/src/modules/custMgt/views/ChrgList.vue diff --git a/frontend/src/modules/custMgt/router/index.js b/frontend/src/modules/custMgt/router/index.js index 16910f6..4d0f922 100644 --- a/frontend/src/modules/custMgt/router/index.js +++ b/frontend/src/modules/custMgt/router/index.js @@ -1,5 +1,6 @@ import SubsList from '../views/SubsList' import MemberList from '../views/MemberList' +import ChrgList from '../views/ChrgList' import SubsDetail from '../views/SubsDetail' import MemberDetail from '../views/MemberDetail' import MemberAdminDetail from '../views/MemberAdminDetail' @@ -18,6 +19,12 @@ export default [ name: 'memberList', meta: { public: false } }, + { + path: '/custMgt/chrgList', + component: ChrgList, + name: 'chrgList', + meta: { public: false } + }, { path: '/custMgt/subsDetail', component: SubsDetail, diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue new file mode 100644 index 0000000..0d96e09 --- /dev/null +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -0,0 +1,46 @@ + + + + diff --git a/frontend/src/modules/custMgt/views/MemberList.vue b/frontend/src/modules/custMgt/views/MemberList.vue index 673476d..66e77e2 100644 --- a/frontend/src/modules/custMgt/views/MemberList.vue +++ b/frontend/src/modules/custMgt/views/MemberList.vue @@ -10,6 +10,7 @@ diff --git a/frontend/src/modules/custMgt/views/SubsList.vue b/frontend/src/modules/custMgt/views/SubsList.vue index 76932f6..5011888 100644 --- a/frontend/src/modules/custMgt/views/SubsList.vue +++ b/frontend/src/modules/custMgt/views/SubsList.vue @@ -9,6 +9,7 @@ diff --git a/frontend/src/router.js b/frontend/src/router.js index 36bcd24..4589580 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -105,7 +105,8 @@ router.beforeEach((to, from, next) => { nextUrl == '/custMgt/memberList' || nextUrl == '/custMgt/memberDetail' || nextUrl == '/custMgt/subsDetail' || - nextUrl == '/custMgt/memberAdminDetail' + nextUrl == '/custMgt/memberAdminDetail' || + nextUrl == '/custMgt/chrgList' ) { for (var i = 0; i < menuUrls.length; i++) { if (menuUrls[i] == '/custMgt/subsList') { From 84ff3d03176c58ca2ec6fbb522b3901e5c5bd2b9 Mon Sep 17 00:00:00 2001 From: won503 Date: Mon, 20 Mar 2023 08:34:50 +0900 Subject: [PATCH 04/28] =?UTF-8?q?admin=20Chrglist=20=EC=88=98=EC=A0=95/?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=B6=80=EB=B6=84+=20Vue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/custMgt/service/custMgtApi.js | 5 + .../src/modules/custMgt/views/ChrgList.vue | 228 +++++++++++++++++- .../ez/api/custMgt/CustMgtController.java | 46 ++++ .../uplus/ez/api/custMgt/CustMgtMapper.java | 8 +- .../uplus/ez/api/custMgt/CustMgtService.java | 58 ++++- .../ez/api/custMgt/dto/ChrgListReqDto.java | 2 +- .../ez/api/custMgt/dto/DeleteChrgReqDto.java | 15 ++ .../ez/api/custMgt/dto/DeleteChrgResDto.java | 31 +++ .../ez/api/custMgt/dto/UpdateChrgReqDto.java | 29 +++ .../ez/api/custMgt/dto/UpdateChrgResDto.java | 30 +++ .../uplus/ez/api/custMgt/dto/UserLmtList.java | 2 + .../mapper/mysql/custMgt/custMgt-mapper.xml | 12 +- 12 files changed, 444 insertions(+), 22 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgResDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgResDto.java diff --git a/frontend/src/modules/custMgt/service/custMgtApi.js b/frontend/src/modules/custMgt/service/custMgtApi.js index a65a865..fe1ceb3 100644 --- a/frontend/src/modules/custMgt/service/custMgtApi.js +++ b/frontend/src/modules/custMgt/service/custMgtApi.js @@ -83,6 +83,10 @@ const deleteMemo = (params) => { return httpClient.post('/api/v1/bo/custMgt/deleteMemo', params); } +const chrgList = (params) => { + return httpClient.post('/api/v1/bo/custMgt/chrgList', params); +} + const getExcelHeader = category => { // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다. return new Promise(function(resolve, reject) { @@ -123,4 +127,5 @@ export default { deleteMemo, insertTestId, duplicateCheckUserId, + chrgList, } diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 0d96e09..39b2bf6 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -7,28 +7,162 @@ - + +
+
+
+ +
+ + + + ~ + + + +
+
+
+
+
+ + +
+
+ +
+ +
+
+
+
{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}건 +
+ +
+
+
+ +
+ +
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 2315971..ce465ee 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 @@ -31,6 +31,8 @@ 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.ChrgListReqDto; import kr.co.uplus.ez.api.custMgt.dto.ChrgListResDto; +import kr.co.uplus.ez.api.custMgt.dto.DeleteChrgReqDto; +import kr.co.uplus.ez.api.custMgt.dto.DeleteChrgResDto; 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; @@ -59,6 +61,8 @@ import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoResDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoTotalReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateAdminInfoTotalResDto; +import kr.co.uplus.ez.api.custMgt.dto.UpdateChrgReqDto; +import kr.co.uplus.ez.api.custMgt.dto.UpdateChrgResDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateUserReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateUserResDto; import kr.co.uplus.ez.api.custMgt.dto.UserLmtListExcelReqDto; @@ -68,6 +72,7 @@ import kr.co.uplus.ez.api.custMgt.dto.UserLmtListResDto; import kr.co.uplus.ez.common.components.ValidComponents; import kr.co.uplus.ez.common.data.ApiResponseCode; import kr.co.uplus.ez.common.data.ApiResponseMessage; +import lombok.val; /** * 고객관리 Controller. @@ -528,6 +533,47 @@ public class CustMgtController { } + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 수정 + * @param UpdateChrgReqDto + * @return UpdateChrgResDto + */ + @ApiOperation(value="updateChrg", notes = "충전관리 수정") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value="/updateChrg", method= {RequestMethod.POST}) + @ResponseBody + public UpdateChrgResDto updateChrg(@RequestBody @Valid UpdateChrgReqDto updateChrgReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new UpdateChrgResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.UpdateChrg(updateChrgReqDto); + } + + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 삭제 + * @param DeleteChrgReqDto + * @return DeleteChrgResDto + */ + @ApiOperation(value="deleteChrg", notes = "충전관리 수정") + @ApiResponses({ + @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") + }) + @RequestMapping(value="/deleteChrg", method= {RequestMethod.POST}) + @ResponseBody + public DeleteChrgResDto deleteChrg(@RequestBody @Valid DeleteChrgReqDto deleteChrgReqDto, BindingResult bindingResult) { + if(validComponents.validParameter(bindingResult)) { + return new DeleteChrgResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + return custService.DeleteChrg(deleteChrgReqDto); + } + + /*2023-03-07 add request 부분 * * date : 2023. 1. 1. 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 779ae92..96b6671 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 @@ -117,7 +117,13 @@ public interface CustMgtMapper { /**이용자 충전번호 */ String getChrgSeq(); /**충전관리 등록 */ - void insertChrgInfo(InsertChrgReqDto insertChrgReqDto); + void insertChrgInfo(ChrgInfo chrgInfo); + /**충전관리 수정 */ + void updateChrg(@Valid UpdateChrgReqDto updateChrgReqDto); + /**충전관리 수정후 등록 */ + void addChrg(@Valid ChrgInfo chrgInfo); + /**충전관리 삭제 */ + void deleteChrg(@Valid DeleteChrgReqDto deleteChrgReqDto); //2023-03-07 add request 부분 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 f69357b..7c5e562 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 @@ -1026,18 +1026,15 @@ public class CustMgtService { */ public InsertChrgResDto InsertChrg(@Valid InsertChrgReqDto insertChrgReqDto) { CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); - Map reqMap = new HashMap(); - - String userId = insertChrgReqDto.getUserId(); // // 1. 사용자 유무 확인 // int getUserIdCount = custMgtMapper.getUserIdCount(insertChrgReqDto.getUserId()); // // if (getUserIdCount < 1) { -// return new InsertChrgResDto(ApiResponseCode.CE_DUPLICATE_ID); +// return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); // } -// // 1. 사용자 유무 확인 + // 1. 사용자 유무 확인 SvcUserInfo svcUserInfo = custMgtMapper.selectSvcUserInfo(insertChrgReqDto.getUserId()); if (svcUserInfo == null) { @@ -1068,10 +1065,59 @@ public class CustMgtService { chrgInfo.setRegId(regId); //로그인 ID chrgInfo.setChgId(regId); //로그인 ID - custMgtMapper.insertChrgInfo(insertChrgReqDto); + custMgtMapper.insertChrgInfo(chrgInfo); return new InsertChrgResDto(ApiResponseCode.SUCCESS); } + + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 수정 + * @param UpdateChrgReqDto + * @return UpdateChrgResDto + */ + public UpdateChrgResDto UpdateChrg(@Valid UpdateChrgReqDto updateChrgReqDto) { + + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + + // 1. 사용여부 update + custMgtMapper.updateChrg(updateChrgReqDto); + + // 2. 새 정보 insert + String chrgSeq = custMgtMapper.getChrgSeq(); + String userSeq = custMgtMapper.getUserSeq(); + Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + UserDetails userDetails = (UserDetails) principal; + String regId = userDetails.getUsername(); + + ChrgInfo chrgInfo = new ChrgInfo(); + chrgInfo.setChrgSeq(chrgSeq); + chrgInfo.setUserSeq(userSeq); + chrgInfo.setChrgDiv(updateChrgReqDto.getChrdDiv()); + chrgInfo.setStartDt(updateChrgReqDto.getStartDt()); + chrgInfo.setEndDt(updateChrgReqDto.getEndDt()); + chrgInfo.setChrgAmt(updateChrgReqDto.getChrgAmt()); + chrgInfo.setRegId(regId); //로그인 ID + chrgInfo.setChgId(regId); //로그인 ID + + custMgtMapper.addChrg(chrgInfo); + + return new UpdateChrgResDto(ApiResponseCode.SUCCESS); + } + + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 삭제 + * @param DeleteChrgReqDto + * @return DeleteChrgResDto + */ + public DeleteChrgResDto DeleteChrg(@Valid DeleteChrgReqDto deleteChrgReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + custMgtMapper.deleteChrg(deleteChrgReqDto); + return new DeleteChrgResDto(ApiResponseCode.SUCCESS); + } /* 2023-03-07 add request 부분 * date : 2023. 1. 1. diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java index 2efca10..dc54264 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgListReqDto.java @@ -14,7 +14,7 @@ public class ChrgListReqDto implements Serializable{ @ApiModelProperty(example = "조회 종료 날짜", name = "조회 종료 날짜", notes = "YYYYMM", dataType = "String") private String endDt; @ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 고객사명(01)/가입번호(02)/서비스ID(03)", dataType = "String") - private String searchType3; + private String searchType1; @ApiModelProperty(example = "검색어 (입력항목)", name = "검색어 (입력항목)", dataType = "String") private String searchText1; @ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String") diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java new file mode 100644 index 0000000..4f8a9ab --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java @@ -0,0 +1,15 @@ +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 DeleteChrgReqDto implements Serializable{ + + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgResDto.java new file mode 100644 index 0000000..792779d --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgResDto.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 DeleteChrgResDto extends ResponseMessage implements Serializable{ + + private Object data; + + public DeleteChrgResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public DeleteChrgResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public DeleteChrgResDto(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/UpdateChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java new file mode 100644 index 0000000..0e4ace5 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java @@ -0,0 +1,29 @@ +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 UpdateChrgReqDto implements Serializable{ + + @ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String") + private String custNm; + @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") + private String userId; + @ApiModelProperty(example = "충전구분", name = "충전구분", dataType = "String") + private String chrdDiv; + @ApiModelProperty(example = "충전시작일", name = "충전시작일", dataType = "String") + private String startDt; + @ApiModelProperty(example = "충전종료일", name = "충전종료일", dataType = "String") + private String endDt; + @ApiModelProperty(example = "충전금액", name = "충전금액", dataType = "String") + private String chrgAmt; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") + private String bizrNo; + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgResDto.java new file mode 100644 index 0000000..076e98f --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgResDto.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 UpdateChrgResDto extends ResponseMessage implements Serializable{ + + private Object data; + + public UpdateChrgResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UpdateChrgResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UpdateChrgResDto(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/UserLmtList.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.java index 2619afb..249aae2 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserLmtList.java @@ -9,6 +9,8 @@ import lombok.Data; @Data public class UserLmtList implements Serializable { + @ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "Integer") + private Integer no; @ApiModelProperty(example = "이용자일련번호", name = "이용자일련번호", dataType = "String") private String userSeq; @ApiModelProperty(example = "한도년월", name = "한도년월", dataType = "String") diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 0e8d7c9..229ff0b 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1145,7 +1145,7 @@ - SELECT @ROWNUM := @ROWNUM + 1 AS NO , eci.CUST_NM @@ -1167,14 +1167,14 @@ AND esi.SUBS_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%') - - + + AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - + AND UPPER(eci.BIZRNO) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - + AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) @@ -1247,7 +1247,7 @@ , NOW() , #{regId} , NOW() - ) + ) From 80bb1462401af431af44b8e46d2dfa6a40185942 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Mon, 20 Mar 2023 09:09:08 +0900 Subject: [PATCH 05/28] =?UTF-8?q?=EC=B6=A9=EC=A0=84=20=EA=B4=80=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/custMgt/views/ChrgList.vue | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 39b2bf6..1aabc90 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -169,6 +169,25 @@ export default { }, mounted() { + // 달력 세팅 + + let page = 1; + // 페이지 정보 및 검색 조건 + const getCondition = this.$store.getters['searchcondition/getSearchCondition']; + + // store에 저장된 페이지 정보 및 검색 조건을 불러오기 + let isKeep = false; + /* + if (getCondition) { + this.grid.pagePerRows = getCondition.perPage; + this.grid.params = getCondition.params; + page = getCondition.page; + isKeep = true; + } + */ + this.grid.pagePerRows = 50; + page = 1; + this.search(isKeep); }, methods: { @@ -180,6 +199,8 @@ export default { this.grid.params.startDt = moment(this.startDate).format('YYYYMM'); this.grid.params.endDt = moment(this.endDate).format('YYYYMM'); this.grid.params.searchType1 = this.searchType1; + this.$refs.table.search(this.grid.params, isKeep); + this.sendStoreData(); }, //달력 셋팅 From 6fa5c4d20b63c093d36067c3e3db2064821380a3 Mon Sep 17 00:00:00 2001 From: won503 Date: Thu, 23 Mar 2023 16:09:39 +0900 Subject: [PATCH 06/28] =?UTF-8?q?chrgModal=20=EC=88=98=EC=A0=95=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custMgt/components/InsertChrgModal.vue | 262 ++++++++++++++++++ .../custMgt/components/UserListPop.vue | 100 +++++++ .../src/modules/custMgt/views/ChrgList.vue | 131 ++++++--- 3 files changed, 457 insertions(+), 36 deletions(-) create mode 100644 frontend/src/modules/custMgt/components/InsertChrgModal.vue create mode 100644 frontend/src/modules/custMgt/components/UserListPop.vue diff --git a/frontend/src/modules/custMgt/components/InsertChrgModal.vue b/frontend/src/modules/custMgt/components/InsertChrgModal.vue new file mode 100644 index 0000000..3c0955b --- /dev/null +++ b/frontend/src/modules/custMgt/components/InsertChrgModal.vue @@ -0,0 +1,262 @@ + + + diff --git a/frontend/src/modules/custMgt/components/UserListPop.vue b/frontend/src/modules/custMgt/components/UserListPop.vue new file mode 100644 index 0000000..de5809e --- /dev/null +++ b/frontend/src/modules/custMgt/components/UserListPop.vue @@ -0,0 +1,100 @@ + + diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 1aabc90..6f3a683 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -65,32 +65,37 @@
{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}건 -
- +
+ +
-
+
+ + +
+
- +
+ @@ -98,9 +103,30 @@ From 01a265c17d7a22da3f09fccffe0d47cefe1e93ce Mon Sep 17 00:00:00 2001 From: won503 Date: Fri, 24 Mar 2023 17:28:43 +0900 Subject: [PATCH 07/28] =?UTF-8?q?admin=5Fchrg=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custMgt/components/InsertChrgModal.vue | 64 +++++++++-- .../custMgt/components/UserListPop.vue | 8 +- .../src/modules/custMgt/service/custMgtApi.js | 7 ++ .../src/modules/custMgt/views/ChrgList.vue | 2 +- .../ez/api/custMgt/CustMgtController.java | 12 +-- .../uplus/ez/api/custMgt/CustMgtService.java | 101 ++++++++++++------ .../co/uplus/ez/api/custMgt/dto/ChrgInfo.java | 6 +- .../co/uplus/ez/api/custMgt/dto/ChrgList.java | 9 +- .../uplus/ez/api/custMgt/dto/ChrgListRes.java | 1 + .../ez/api/custMgt/dto/InsertChrgReqDto.java | 4 +- .../ez/api/custMgt/dto/UpdateChrgReqDto.java | 4 +- .../mapper/mysql/custMgt/custMgt-mapper.xml | 89 ++++++++------- 12 files changed, 199 insertions(+), 108 deletions(-) diff --git a/frontend/src/modules/custMgt/components/InsertChrgModal.vue b/frontend/src/modules/custMgt/components/InsertChrgModal.vue index 3c0955b..82ffd06 100644 --- a/frontend/src/modules/custMgt/components/InsertChrgModal.vue +++ b/frontend/src/modules/custMgt/components/InsertChrgModal.vue @@ -12,8 +12,9 @@ 유저 ID @@ -21,7 +22,7 @@ 충전월 -
+
- + - +
@@ -94,7 +95,7 @@ @@ -105,6 +106,8 @@ diff --git a/frontend/src/modules/custMgt/components/InsertChrgModal.vue b/frontend/src/modules/custMgt/components/InsertChrgModal.vue index 82ffd06..792ca1f 100644 --- a/frontend/src/modules/custMgt/components/InsertChrgModal.vue +++ b/frontend/src/modules/custMgt/components/InsertChrgModal.vue @@ -144,6 +144,7 @@ export default { bRegNo: '', bizrAuthYn : '', custSeq : '', + chrgSeq : '', } }, @@ -219,8 +220,8 @@ export default { if (type != undefined && type != null) { let initStartDate = new Date(); let initEndDate = new Date(); - initStartDate.setMonth(Number(moment(initStartDate).format('MM')) - 4) - initEndDate.setMonth(Number(moment(initEndDate).format('MM')) - 2) + initStartDate.setMonth(Number(moment(initStartDate).format('MM')) ) + initEndDate.setMonth(Number(moment(initEndDate).format('MM')) + 12) if (type == 'start') { @@ -255,32 +256,21 @@ export default { }, initSetStartDate() { let initStartDate = new Date(); - initStartDate.setMonth(Number(moment(initStartDate).format('MM')) - 4); + initStartDate.setMonth(Number(moment(initStartDate).format('MM'))); this.startDate = initStartDate; }, initSetEndDate() { let initEndDate = new Date(); - initEndDate.setMonth(Number(moment(initEndDate).format('MM')) - 2); + initEndDate.setMonth(Number(moment(initEndDate).format('MM')) +12); this.endDate = initEndDate; }, saveChrg(){ - // this.saveChrg = []; - // this.saveChrg.push({ - // userId: this.userId, - // strtYm: this.strtYm, - // endYm: this.endDate, - // chrgAmt: this.chrgAmt, - // }) - - // let startDate2 = this.startDate.toString() - console.log("this.userId: ", this.userId) console.log("this.startDate: ", this.startDate) console.log("this.endDate: ", this.endDate) console.log("this.chrgAmtE: ", this.chrgAmtE) - // startDate2 = startDate2.replace(/{{/g, '') - // console.log("chstartDate",chstartDate) + let param = { userId : this.userId, strtYm : this.startDate, @@ -295,7 +285,7 @@ export default { if (result.success) { alert("충전금이 등록되었습니다."); } else { - alert("오류가 발생하였습니다"); + // alert("오류가 발생하였습니다"); } }) }, diff --git a/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue b/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue index c65bc94..a324807 100644 --- a/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue +++ b/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue @@ -161,6 +161,41 @@
+ +
+ + + +
+ + @@ -407,6 +442,59 @@ export default { // 부모 함수 호출. this.$parent.confirmCalbackFnc(this.row); }, + + //충전금 수정 확인 Open + chrgconfirmUpdateOpen() { + var dimmed = document.getElementsByClassName('chrgconfirm-update'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'block'; + } + + }, + //충전금 수정 확인 + chrgconfirmUpdate() { + var dimmed = document.getElementsByClassName('chrgconfirm-update'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + console.log("3") + this.$parent.ChrgUpdateModal(); + + }, + // 충전금 수정 Close + chrgconfirmUpdateClose() { + var dimmed = document.getElementsByClassName('chrgconfirm-update'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + + }, + + // 충전금 삭제 Open + chrgconfirmDeleteOpen() { + var dimmed = document.getElementsByClassName('chrgconfirm-delete'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'block'; + } + }, + //충전금 삭제 + chrgconfirmDelete() { + var dimmed = document.getElementsByClassName('chrgconfirm-delete'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + this.$parent.ChrgDeleteModal(); + }, + //충전금 삭제 Close + chrgconfirmDeleteClose() { + var dimmed = document.getElementsByClassName('chrgconfirm-delete'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + + }, + + } } \ No newline at end of file diff --git a/frontend/src/modules/custMgt/service/custMgtApi.js b/frontend/src/modules/custMgt/service/custMgtApi.js index b02e539..2286ef3 100644 --- a/frontend/src/modules/custMgt/service/custMgtApi.js +++ b/frontend/src/modules/custMgt/service/custMgtApi.js @@ -93,11 +93,21 @@ const insertChrg = (params) => { return httpClient.post('/api/v1/bo/custMgt/insertChrg', params); } +// 충전금 생성 +const chrgDetail = (params) => { + return httpClient.post('/api/v1/bo/custMgt/chrgDetail', params); +} + // 충전금 수정 const updateChrg = (params) => { return httpClient.post('/api/v1/bo/custMgt/updateChrg', params); } +// 충전금 삭제 +const deleteChrg = (params) => { + return httpClient.post('/api/v1/bo/custMgt/deleteChrg', params); +} + const getExcelHeader = category => { // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다. return new Promise(function(resolve, reject) { @@ -141,4 +151,6 @@ export default { chrgList, insertChrg, updateChrg, + chrgDetail, + deleteChrg, } diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 4e3d0b2..6a5f196 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -97,6 +97,7 @@ + @@ -107,6 +108,7 @@ import customGrid from '@/components/CustomGrid'; import moment from 'moment'; import InsertChrgModal from '../components/InsertChrgModal'; import chrgDetailPop from '../components/ChrgDetailPop.vue'; +import commonModal from "@/components/modal/commonModal"; class CustomATagRenderer { constructor(props) { @@ -149,7 +151,10 @@ export default { endYear: '', endMonth: '', + searchType1: '01', + chrgSeq : '', + useYn: '', // 테이블 리스트 데이터 perPageCnt: 50, @@ -168,6 +173,7 @@ export default { addCls: 'box_OFvis', columns:[ + {name: 'chrgSeq', header: 'chrgSeq', align: 'center', width: 60}, {name: 'no', header: 'No', align: 'center', width: 60}, { name: 'custNm', header: '고객사명', align: 'center', width: 130, @@ -193,6 +199,7 @@ export default { vuejsDatepicker, InsertChrgModal, chrgDetailPop, + commonModal, }, created() { this.setPeriodDay(0); @@ -342,7 +349,11 @@ export default { insertChrg () { this.$refs.insertChrgModal.insertChrgOpen(); - } + }, + + alertInsert(props) { + this.$refs.commonModal.alertModalOpen(props); + }, } } 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 c7bb264..e123ab2 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 @@ -1039,6 +1039,25 @@ public class CustMgtService { return new ChrgListResDto(ApiResponseCode.SUCCESS, chrgListRes); } + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 상세 조회 + * @param ChrgDetailReqDto + * @return ChrgDetailResDto + */ + public ChrgDetailResDto chrgDetail(@Valid ChrgDetailReqDto chrgDetailReqDto) { + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); + + ChrgDetail chrgDetail = custMgtMapper.selectChrgDetail(chrgDetailReqDto); + + if (chrgDetail == null) { + return new ChrgDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } + + // 성공 응답. + return new ChrgDetailResDto(ApiResponseCode.SUCCESS, chrgDetail); + } /** * * date : 2023. 3. 15. @@ -1088,7 +1107,7 @@ public class CustMgtService { chrgInfo.setChrgDiv(insertChrgReqDto.getChrdDiv()); String StrYm = insertChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); - String EndYm = insertChrgReqDto.getEndYm().substring(0, 6); + String EndYm = insertChrgReqDto.getEndYm().replace("-", "").substring(0, 6); chrgInfo.setEndYm(EndYm); chrgInfo.setChrgAmt(insertChrgReqDto.getChrgAmt()); chrgInfo.setRegId(regId); //로그인 ID @@ -1114,21 +1133,21 @@ public class CustMgtService { custMgtMapper.updateChrg(updateChrgReqDto); // 2. 새 정보 insert - String chrgSeq = custMgtMapper.getChrgSeq(); + String chrgSeq = custMgtMapper.getChrgSeq(); int userSeq = custMgtMapper.selectUserSeq(updateChrgReqDto.getUserId()); Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); - logger.debug("insertChrgReqDto= {}", updateChrgReqDto); + logger.debug("updateChrgReqDto= {}", updateChrgReqDto); ChrgInfo chrgInfo = new ChrgInfo(); chrgInfo.setChrgSeq(chrgSeq); chrgInfo.setUserSeq(userSeq); chrgInfo.setChrgDiv(updateChrgReqDto.getChrdDiv()); - String StrYm = updateChrgReqDto.getStrtYm().substring(0, 6); + String StrYm = updateChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); - String EndYm = updateChrgReqDto.getEndYm().substring(0, 6); + String EndYm = updateChrgReqDto.getEndYm().replace("-", "").substring(0, 6); chrgInfo.setEndYm(EndYm); chrgInfo.setChrgAmt(updateChrgReqDto.getChrgAmt()); chrgInfo.setRegId(regId); //로그인 ID @@ -1152,25 +1171,7 @@ public class CustMgtService { return new DeleteChrgResDto(ApiResponseCode.SUCCESS); } - /** - * date : 2023. 3. 15. - * auth : won - * desc : 충전관리 상세 조회 - * @param ChrgDetailReqDto - * @return ChrgDetailResDto - */ - public ChrgDetailResDto chrgDetail(@Valid ChrgDetailReqDto chrgDetailReqDto) { - CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - - ChrgDetail chrgDetail = custMgtMapper.selectChrgDetail(chrgDetailReqDto); - - if (chrgDetail == null) { - return new ChrgDetailResDto(ApiResponseCode.CM_NOT_FOUND); - } - // 성공 응답. - return new ChrgDetailResDto(ApiResponseCode.SUCCESS, chrgDetail); - } /* 2023-03-07 add request 부분 * date : 2023. 1. 1. diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetail.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetail.java new file mode 100644 index 0000000..da2218c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetail.java @@ -0,0 +1,30 @@ +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 ChrgDetail implements Serializable{ + + @ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String") + private String custNm; + @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") + private String userId; + @ApiModelProperty(example = "충전구분", name = "충전구분", dataType = "String") + private String chrgDiv; + @ApiModelProperty(example = "충전시작일", name = "충전시작일", dataType = "String") + private String strtYm; + @ApiModelProperty(example = "충전종료일", name = "충전종료일", dataType = "String") + private String endYm; + @ApiModelProperty(example = "충전금액", name = "충전금액", dataType = "String") + private String chrgAmt; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") + private String bizrNo; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailReqDto.java new file mode 100644 index 0000000..a3d8c9e --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailReqDto.java @@ -0,0 +1,14 @@ +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 ChrgDetailReqDto implements Serializable{ + + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailResDto.java new file mode 100644 index 0000000..b283973 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailResDto.java @@ -0,0 +1,33 @@ +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 ChrgDetailResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private ChrgDetail data; + + public ChrgDetailResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public ChrgDetailResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public ChrgDetailResDto(ApiResponseCode returnStr, ChrgDetail 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/ChrgList.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java index eaa2e71..1484253 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java @@ -28,5 +28,7 @@ public class ChrgList implements Serializable{ private String bizrNo; @ApiModelProperty(example = "충전기간", name = "충전기간", dataType = "String") private String chrgDate; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java index 4f8a9ab..d2669a5 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java @@ -11,5 +11,7 @@ public class DeleteChrgReqDto implements Serializable{ @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") private String useYn; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java index f0407c0..2e33975 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java @@ -25,5 +25,7 @@ public class UpdateChrgReqDto implements Serializable{ private String useYn; @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") private String bizrNo; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; } diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index cf438ea..c8df3c0 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1148,10 +1148,6 @@ @@ -1228,10 +1240,11 @@ - hubez_admin.EZ_CHARGE_MNG - set - ecm.USE_YN ='N' - WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId}) + UPDATE + hubez_admin.EZ_CHARGE_MNG ecm + set + ecm.USE_YN ='N' + WHERE ecm.CHRG_SEQ = #{chrgSeq} @@ -1247,27 +1260,27 @@ , REG_DT , CHG_ID , CHG_DT - ) ) VALUES( #{chrgSeq} , #{userSeq} - , 'Y' - , #{startDt} - , #{endDt} + , 'E' + , #{strtYm} + , #{endYm} , #{chrgAmt} + , 'Y' , #{regId} , NOW() , #{regId} , NOW() - ) + ) UPDATE - hubez_admin.EZ_CHARGE_MNG + hubez_admin.EZ_CHARGE_MNG ecm set ecm.USE_YN ='N' - WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId}) + WHERE ecm.CHRG_SEQ = #{chrgSeq} From 2127cc00d28d257cdaeeb64e5b93b9c90d003063 Mon Sep 17 00:00:00 2001 From: won503 Date: Tue, 28 Mar 2023 14:38:03 +0900 Subject: [PATCH 10/28] =?UTF-8?q?admin=5Fchrg=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=EC=8B=9C=20=EC=82=AD=EC=A0=9C=20=EC=88=98=EC=A0=95=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custMgt/components/ChrgDetailPop.vue | 2 - .../custMgt/components/InsertChrgModal.vue | 27 ++++---- .../src/modules/custMgt/views/ChrgList.vue | 63 ++++++++++++++++++- .../ez/api/custMgt/CustMgtController.java | 4 ++ .../uplus/ez/api/custMgt/CustMgtService.java | 2 + .../uplus/ez/api/custMgt/dto/ChrgDelete.java | 13 ++++ .../ez/api/custMgt/dto/DeleteChrgReqDto.java | 2 + 7 files changed, 97 insertions(+), 16 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java diff --git a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue index 4c1715b..5eaf404 100644 --- a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue +++ b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue @@ -181,7 +181,6 @@ export default { }, ChrgDetailClose(){ - console.log("1") var dimmed = document.getElementsByClassName('modal53'); for(var i = 0; i < dimmed.length; i++){ dimmed[i].style.display = 'none'; @@ -240,7 +239,6 @@ export default { }, toComplete(){ - console.log("8") this.$parent.$refs.table.reloadData(); this.ChrgDetailClose(); }, diff --git a/frontend/src/modules/custMgt/components/InsertChrgModal.vue b/frontend/src/modules/custMgt/components/InsertChrgModal.vue index 792ca1f..57d4540 100644 --- a/frontend/src/modules/custMgt/components/InsertChrgModal.vue +++ b/frontend/src/modules/custMgt/components/InsertChrgModal.vue @@ -146,6 +146,8 @@ export default { custSeq : '', chrgSeq : '', + row: {}, + } }, components: { @@ -265,11 +267,6 @@ export default { this.endDate = initEndDate; }, saveChrg(){ - console.log("this.userId: ", this.userId) - console.log("this.startDate: ", this.startDate) - console.log("this.endDate: ", this.endDate) - console.log("this.chrgAmtE: ", this.chrgAmtE) - let param = { userId : this.userId, @@ -278,17 +275,21 @@ export default { chrgAmt : this.chrgAmtE, } - custMgtApi - .insertChrg(param) - .then((respose)=> { + custMgtApi.insertChrg(param).then((respose)=> { var result = respose.data; - if (result.success) { - alert("충전금이 등록되었습니다."); - } else { - // alert("오류가 발생하였습니다"); - } + if (result != null && result.retCode == "0000"){ + this.row.title = '충전금'; + this.row.msg1 = '등록 하였습니다.'; + this.$parent.alertInsert(this.row); + this.toComplete(); + } }) }, + + toComplete(){ + this.$parent.$refs.table.reloadData(); + this.insertChrgClose(); + }, }, }; diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 6a5f196..64c7ee2 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -109,6 +109,7 @@ import moment from 'moment'; import InsertChrgModal from '../components/InsertChrgModal'; import chrgDetailPop from '../components/ChrgDetailPop.vue'; import commonModal from "@/components/modal/commonModal"; +import custMgtApi from '../service/custMgtApi'; class CustomATagRenderer { constructor(props) { @@ -151,7 +152,7 @@ export default { endYear: '', endMonth: '', - + row: {}, searchType1: '01', chrgSeq : '', useYn: '', @@ -350,10 +351,70 @@ export default { insertChrg () { this.$refs.insertChrgModal.insertChrgOpen(); }, + deleteChrg(){ + if (this.doValidate()) { + this.row.title = '충전금 관리'; + this.row.msg1 = '삭제 하시겠습니까?'; + console.log("row.list", this.row.list) + this.$refs.commonModal.confirmModalOpen2(this.row); + } + }, + + async chrgdelete() { + try { + console.log("this.row",this.row) + let respose = await custMgtApi.deleteChrg(this.row); + + const result = respose.data; + if (result != null && result.retCode == '0000') { + this.$refs.table.reloadData(); + return; + } else { + this.row.title = '충전금 관리'; + this.row.msg1 = '실패 하였습니다.'; + this.$refs.commonModal.alertModalOpen(this.row); + } + } catch (error) { + this.row.title = '충전금 관리'; + this.row.msg1 = '실패 하였습니다.'; + this.$refs.commmonModal.alertModalOpen(this.row); + } + }, alertInsert(props) { this.$refs.commonModal.alertModalOpen(props); }, + + doValidate() { + //로우데이터 삭제하도록 수정 + // this.totalItems==1 + // if (this.totalItems == 0) { + // this.row.title = '충전금 관리'; + // this.row.msg1 = '검색 결과가 없습니다.'; + // this.$refs.commonModal.alertModalOpen(this.row); + // return false; + // } + var chkList = this.$refs.table.checkedElementDatas(); + console.log("chkList",chkList) + // console.log("chkList.length", chkList.length) + if (chkList.length == 0) { + this.row.title = '충전금 관리'; + this.row.msg1 = '삭제대상을 체크를 해주세요.'; + this.$refs.commonModal.alertModalOpen(this.row); + return false; + } + console.log("row.chrgSeq",this.row.chrgSeq) + const param = chkList.map((row) => ({ chrgSeq: row.chrgSeq })); + console.log("param",param) + // console.log("chrgSeq",chrgSeq) + this.row.list = param; + return true; + }, + confirmCalbackFnc(props) { + if (props.result) { + this.chrgdelete(); + } + }, } } 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 abd828c..8350e5b 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 @@ -590,6 +590,10 @@ public class CustMgtController { @RequestMapping(value="/deleteChrg", method= {RequestMethod.POST}) @ResponseBody public DeleteChrgResDto deleteChrg(@RequestBody @Valid DeleteChrgReqDto deleteChrgReqDto, BindingResult bindingResult) { + + logger.debug("deleteChrgReqDto={}",deleteChrgReqDto.getList()); + logger.debug("deleteChrgReqDto={}",deleteChrgReqDto.getList().get(0)); + if(validComponents.validParameter(bindingResult)) { return new DeleteChrgResDto(ApiResponseCode.CM_PARAMETER_ERROR); } 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 e123ab2..6308846 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 @@ -1166,6 +1166,8 @@ public class CustMgtService { * @return */ public DeleteChrgResDto DeleteChrg(@Valid DeleteChrgReqDto deleteChrgReqDto) { + + logger.debug("deleteChrgReqDto={}",deleteChrgReqDto); CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); custMgtMapper.deleteChrg(deleteChrgReqDto); return new DeleteChrgResDto(ApiResponseCode.SUCCESS); diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java new file mode 100644 index 0000000..7fe9cce --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java @@ -0,0 +1,13 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; + +public class ChrgDelete implements Serializable { + + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java index d2669a5..2d3802e 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java @@ -1,6 +1,7 @@ package kr.co.uplus.ez.api.custMgt.dto; import java.io.Serializable; +import java.util.List; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,4 +15,5 @@ public class DeleteChrgReqDto implements Serializable{ @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") private String chrgSeq; + private List list; } From 0c8d3781fbe814bac4b2ce747d947e1ae8699ef0 Mon Sep 17 00:00:00 2001 From: "DESKTOP-MAVEOS0\\lmh32" Date: Tue, 28 Mar 2023 15:14:12 +0900 Subject: [PATCH 11/28] =?UTF-8?q?=EC=B6=A9=EC=A0=84=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java | 2 ++ src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java index 7fe9cce..4fdbd6f 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDelete.java @@ -3,7 +3,9 @@ package kr.co.uplus.ez.api.custMgt.dto; import java.io.Serializable; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +@Data public class ChrgDelete implements Serializable { @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index c8df3c0..9b0394c 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1275,12 +1275,15 @@ ) - + UPDATE hubez_admin.EZ_CHARGE_MNG ecm set ecm.USE_YN ='N' - WHERE ecm.CHRG_SEQ = #{chrgSeq} + WHERE ecm.CHRG_SEQ in + + #{list.chrgSeq} + From 393f8029159a919f855b667c965a2d6a01917131 Mon Sep 17 00:00:00 2001 From: won503 Date: Tue, 28 Mar 2023 16:52:44 +0900 Subject: [PATCH 12/28] =?UTF-8?q?admin=5Fchrg=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=95/=20=EC=82=AD=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custMgt/components/ChrgDetailPop.vue | 8 ++- .../src/modules/custMgt/views/ChrgList.vue | 9 ++- .../uplus/ez/api/custMgt/CustMgtMapper.java | 2 + .../uplus/ez/api/custMgt/CustMgtService.java | 42 ++++++++----- .../mapper/mysql/custMgt/custMgt-mapper.xml | 62 +++++++++++++++---- 5 files changed, 91 insertions(+), 32 deletions(-) diff --git a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue index 5eaf404..7d5360d 100644 --- a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue +++ b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue @@ -188,8 +188,14 @@ export default { }, //삭제버튼 async ChrgDeleteModal(){ + try { - const response = await custMgtApi.deleteChrg(this.row); + var parammap = {chrgSeq : this.chrgSeq} + var list = []; + list.push(parammap); + var param = {list : list} + // "list":[{"chrgSeq":"66"}] + const response = await custMgtApi.deleteChrg(param); const result = response.data; if (result != null && result.retCode == "0000") { this.row.title = '충전금'; diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 64c7ee2..632b7c1 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -174,7 +174,6 @@ export default { addCls: 'box_OFvis', columns:[ - {name: 'chrgSeq', header: 'chrgSeq', align: 'center', width: 60}, {name: 'no', header: 'No', align: 'center', width: 60}, { name: 'custNm', header: '고객사명', align: 'center', width: 130, @@ -355,14 +354,14 @@ export default { if (this.doValidate()) { this.row.title = '충전금 관리'; this.row.msg1 = '삭제 하시겠습니까?'; - console.log("row.list", this.row.list) + // console.log("row.list", this.row.list) this.$refs.commonModal.confirmModalOpen2(this.row); } }, async chrgdelete() { try { - console.log("this.row",this.row) + // console.log("this.row",this.row) let respose = await custMgtApi.deleteChrg(this.row); const result = respose.data; @@ -403,9 +402,9 @@ export default { this.$refs.commonModal.alertModalOpen(this.row); return false; } - console.log("row.chrgSeq",this.row.chrgSeq) + // console.log("row.chrgSeq",this.row.chrgSeq) const param = chkList.map((row) => ({ chrgSeq: row.chrgSeq })); - console.log("param",param) + // console.log("param",param) // console.log("chrgSeq",chrgSeq) this.row.list = param; return true; 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 92dbaee..daeade1 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 @@ -111,6 +111,8 @@ public interface CustMgtMapper { /** 청구정보 카운트 조회.*/ int selectUserLmtListTotalCnt(UserLmtListReqDto userLmtListReqDto); + /** 충전관리 카운트 조회.*/ + int cntChrgList(ChrgListReqDto chrgListReqDto); /**충전관리 목록 조회*/ List selectChrgList(ChrgListReqDto chrgListReqDto); /** 충전관리 상세 조회 */ 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 6308846..7e9663c 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 @@ -1010,32 +1010,46 @@ public class CustMgtService { public ChrgListResDto chrgList(ChrgListReqDto chrgListReqDto) { CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + String nowPage = String.valueOf(chrgListReqDto.getPage()); + int totalCnt = custMgtMapper.cntChrgList(chrgListReqDto); + + if (totalCnt == 0) { + + ChrgListRes chrgListRes = new ChrgListRes(); + chrgListRes.setList(new ArrayList<>()); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + chrgListRes.setPaging(paging); + + return new ChrgListResDto(ApiResponseCode.CM_NOT_FOUND, chrgListRes); + } + + int page = chrgListReqDto.getPage(); + int pagePerRows = chrgListReqDto.getPagePerRows(); + page = (page - 1) * pagePerRows; + chrgListReqDto.setPage(page); + List chrgList= custMgtMapper.selectChrgList(chrgListReqDto); - //for문 - //1. 시작일을 가져온다 - //2. 종료일을 가져온다 - //3. 기간이라는 변수에 담아준다(형태를 잡아야함)"시작일"add String "~" add"종료일"(리스트, + for (int i = 0; i < chrgList.size(); i++) { - - String startDt = chrgList.get(i).getStrtYm(); String endDt = chrgList.get(i).getEndYm(); - logger.debug("startDt={} ", startDt); - logger.debug("endDt={} ", endDt); - - -// String chrgDate = startDt + "~" +endDt ; chrgList.get(i).setChrgDate(startDt + "~" +endDt); -// logger.debug("chrgDate={} ", chrgDate); - } ChrgListRes chrgListRes = new ChrgListRes(); chrgListRes.setList(chrgList); - logger.debug("chrgList={}",chrgList); + + Paging paging = new Paging(); + paging.setPage(nowPage); + paging.setTotalCnt(String.valueOf(totalCnt)); + chrgListRes.setPaging(paging); + return new ChrgListResDto(ApiResponseCode.SUCCESS, chrgListRes); } diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 9b0394c..b971517 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1144,25 +1144,18 @@ ENTR_NO = #{entrNo} - - SELECT - @ROWNUM := @ROWNUM + 1 AS NO - , eci.CUST_NM - , esu.USER_ID - , ecm.CHRG_DIV - , ecm.STRT_YM - , ecm.END_YM - , ecm.CHRG_AMT - , ecm.USE_YN - , eci.BIZRNO - , ecm.CHRG_SEQ + + COUNT(*) AS TOTALCNT FROM hubez_admin.EZ_CHARGE_MNG ecm INNER JOIN hubez_common.EZ_SVC_USER esu ON esu.USER_SEQ = ecm.USER_SEQ INNER JOIN hubez_common.EZ_CUST_INFO eci ON eci.CUST_SEQ = esu.CUST_SEQ + INNER JOIN hubez_common.EZ_SUBS_INFO esi ON esi.USER_SEQ = ecm.USER_SEQ WHERE 1 = 1 AND ecm.USE_YN ='Y' + AND esi.SUBS_STTUS_CD ='02' AND (ecm.STRT_YM = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m') @@ -1183,6 +1176,51 @@ ORDER BY ecm.CHRG_SEQ DESC + + + - - + + + diff --git a/frontend/src/modules/custMgt/components/UserListPop.vue b/frontend/src/modules/custMgt/components/UserListPop.vue index 5134925..f3354d7 100644 --- a/frontend/src/modules/custMgt/components/UserListPop.vue +++ b/frontend/src/modules/custMgt/components/UserListPop.vue @@ -16,13 +16,13 @@ ID - 사업자등록번호 + 고객사명 {{ item.userId }} - {{ item.bregNo }} + {{ item.custNm }} @@ -53,8 +53,7 @@ export default { }, methods : { - search (isKeep) { - }, + setUserInfo (props){ this.$emit('event-data', props) this.UserListPopClose(); @@ -81,7 +80,7 @@ export default { if(this.row.searchText1 == ''){ return false; } - const response = await custMgtApi.memberDetail(this.row); + const response = await custMgtApi.userList(this.row); const result = response.data; if (result != null && result.retCode == "0000") { this.list = result.data.list diff --git a/frontend/src/modules/custMgt/service/custMgtApi.js b/frontend/src/modules/custMgt/service/custMgtApi.js index 2286ef3..852b827 100644 --- a/frontend/src/modules/custMgt/service/custMgtApi.js +++ b/frontend/src/modules/custMgt/service/custMgtApi.js @@ -108,6 +108,12 @@ const deleteChrg = (params) => { return httpClient.post('/api/v1/bo/custMgt/deleteChrg', params); } +// 유저 ID 조회 +const userList = (params) => { + return httpClient.post('/api/v1/bo/custMgt/userList', params); +} + + const getExcelHeader = category => { // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다. return new Promise(function(resolve, reject) { @@ -153,4 +159,5 @@ export default { updateChrg, chrgDetail, deleteChrg, + userList, } diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 632b7c1..41512ff 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -302,8 +302,8 @@ export default { if (type != undefined && type != null) { let initStartDate = new Date(); let initEndDate = new Date(); - initStartDate.setMonth(Number(moment(initStartDate).format('MM')) - 4) - initEndDate.setMonth(Number(moment(initEndDate).format('MM')) - 2) + initStartDate.setMonth(Number(moment(initStartDate).format('MM')) -100) + initEndDate.setMonth(Number(moment(initEndDate).format('MM')) + 100) if (type == 'start') { @@ -327,7 +327,7 @@ export default { } else if (this.sDateDiv == 'year') { return moment(date).format('YYYY'); } else { - return moment(date).format('YYYY-MM-DD'); + return moment(date).format('YYYY-MM'); } }, gridParamSet() { @@ -338,12 +338,12 @@ export default { }, initSetStartDate() { let initStartDate = new Date(); - initStartDate.setMonth(Number(moment(initStartDate).format('MM')) - 4); + initStartDate.setMonth(Number(moment(initStartDate).format('MM')) ); this.startDate = initStartDate; }, initSetEndDate() { let initEndDate = new Date(); - initEndDate.setMonth(Number(moment(initEndDate).format('MM')) - 2); + initEndDate.setMonth(Number(moment(initEndDate).format('MM')) +1); this.endDate = initEndDate; }, 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 8350e5b..e97c18e 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 @@ -67,6 +67,8 @@ import kr.co.uplus.ez.api.custMgt.dto.UpdateChrgReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateChrgResDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateUserReqDto; import kr.co.uplus.ez.api.custMgt.dto.UpdateUserResDto; +import kr.co.uplus.ez.api.custMgt.dto.UserListReqDto; +import kr.co.uplus.ez.api.custMgt.dto.UserListResDto; import kr.co.uplus.ez.api.custMgt.dto.UserLmtListExcelReqDto; import kr.co.uplus.ez.api.custMgt.dto.UserLmtListExcelResDto; import kr.co.uplus.ez.api.custMgt.dto.UserLmtListReqDto; @@ -534,6 +536,25 @@ public class CustMgtController { return custService.chrgDetail(chrgDetailReqDto); } + /** + * date : 2022. 4. 25. + * auth : ckr + * desc : 유저ID 목록 조회 + * @param adminListReqDto + */ + @ApiOperation(value = "/userList", notes = "관리자ID 목록 조회") + @ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") }) + @RequestMapping(value = "userList", method = { RequestMethod.POST }) + @ResponseBody + public UserListResDto userList(@RequestBody @Valid UserListReqDto userListReqDto, BindingResult bindingResult) { + + if (validComponents.validParameter(bindingResult)) { + return new UserListResDto(ApiResponseCode.CM_PARAMETER_ERROR); + } + + return custService.userList(userListReqDto); + } + /** * date : 2023. 3. 15. * auth : won 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 daeade1..76268e6 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 @@ -117,8 +117,13 @@ public interface CustMgtMapper { List selectChrgList(ChrgListReqDto chrgListReqDto); /** 충전관리 상세 조회 */ ChrgDetail selectChrgDetail(ChrgDetailReqDto chrgDetailReqDto); + /**유저ID 카운트 조회*/ + int selectuserTotalCnt(UserListReqDto userListReqDto); + /**유저ID 목록 조회*/ + List selectUserList(UserListReqDto userListReqDto); /**이용자 충전번호 */ String getChrgSeq(); + /**충전관리 등록 */ void insertChrgInfo(ChrgInfo chrgInfo); /**충전관리 수정 */ @@ -127,6 +132,7 @@ public interface CustMgtMapper { void addChrg(ChrgInfo chrgInfo); /**충전관리 삭제 */ void deleteChrg(DeleteChrgReqDto deleteChrgReqDto); + 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 7e9663c..38892ea 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 @@ -22,7 +22,6 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -1030,6 +1029,10 @@ public class CustMgtService { int pagePerRows = chrgListReqDto.getPagePerRows(); page = (page - 1) * pagePerRows; chrgListReqDto.setPage(page); + +// Date now = new Date(); +// String chrgYm = DateUtils.dateToStr(now, "yyyyMM"); + List chrgList= custMgtMapper.selectChrgList(chrgListReqDto); @@ -1187,6 +1190,34 @@ public class CustMgtService { return new DeleteChrgResDto(ApiResponseCode.SUCCESS); } + /** + * date : 2022. 4. 25. + * auth : ckr + * desc : 유저ID 목록 조회 + * @param userListReqDto + * @return + */ + public UserListResDto userList(UserListReqDto userListReqDto) { + CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); + int totalCnt = custMgtMapper.selectuserTotalCnt(userListReqDto); + + if(totalCnt == 0) { + UserListRes userListRes = new UserListRes(); + userListRes.setList(new ArrayList<>()); + return new UserListResDto(ApiResponseCode.CM_NOT_FOUND, userListRes); + } + + List userinInfo = custMgtMapper.selectUserList(userListReqDto); + + Paging paging = new Paging(); + paging.setTotalCnt(String.valueOf(totalCnt)); + + UserListRes userListRes = new UserListRes(); + userListRes.setList(userinInfo); + + return new UserListResDto(ApiResponseCode.SUCCESS, userListRes); + } + /* 2023-03-07 add request 부분 diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListReqDto.java new file mode 100644 index 0000000..2394e98 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListReqDto.java @@ -0,0 +1,14 @@ +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 UserListReqDto implements Serializable{ + + @ApiModelProperty(example = "검색어", name = "검색어", dataType = "String") + private String searchText1; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListRes.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListRes.java new file mode 100644 index 0000000..38df65d --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListRes.java @@ -0,0 +1,11 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.util.List; + +import lombok.Data; +@SuppressWarnings("serial") +@Data +public class UserListRes { + + List list; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListResDto.java new file mode 100644 index 0000000..02a017c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserListResDto.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 UserListResDto extends ResponseMessage implements Serializable{ + + // 데이터. + private UserListRes data; + + public UserListResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public UserListResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public UserListResDto(ApiResponseCode returnStr, UserListRes 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/UserinInfo.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserinInfo.java new file mode 100644 index 0000000..7e587c9 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UserinInfo.java @@ -0,0 +1,23 @@ +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 UserinInfo implements Serializable{ + + @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") + private String userId; + @ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String") + private String custNm; + @ApiModelProperty(example = "유저seq", name = "유저seq", dataType = "String") + private String userSeq; + @ApiModelProperty(example = "이용자 상태 코드", name = "이용자 상태 코드", dataType = "String") + private String userSttusCd; + @ApiModelProperty(example = "이용자 유형 코드", name = "이용자 유형 코드", dataType = "String") + private String userTpCd; + +} diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index b971517..19d787f 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1200,12 +1200,10 @@ WHERE 1 = 1 AND ecm.USE_YN ='Y' AND esi.SUBS_STTUS_CD ='02' - - AND (ecm.STRT_YM = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m') - - - OR ecm.END_YM STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m')) - + AND (#{startDt} BETWEEN ecm.STRT_YM AND ecm.END_YM + OR #{endDt} BETWEEN ecm.STRT_YM AND ecm.END_YM + OR ecm.STRT_YM BETWEEN #{startDt} AND #{endDt} + OR ecm.END_YM BETWEEN #{startDt} AND #{endDt}) AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) @@ -1242,6 +1240,42 @@ ORDER BY ecm.CHRG_SEQ DESC + + + + + + + + + @@ -137,9 +136,9 @@ export default { endMonth: '', nmineeDivCd: '01', - chrgAmtE: '', - chrgAmtC: '', - + chrgAmtE: '0', + chrgAmtC: '0', + charDiv: '', userId: '', custNm: '', userSttusCd: '', @@ -174,10 +173,15 @@ export default { }, // 모달 끄기 insertChrgClose() { + this.formReset(); var dimmed = document.getElementsByClassName('insertChrgModal'); for (var i = 0; i < dimmed.length; i++) { dimmed[i].style.display = 'none'; } + + }, + formReset() { + Object.assign(this.$data, this.$options.data()); }, searchIdPop(){ this.$refs.userListPop.UserListPopOpen(); @@ -271,12 +275,29 @@ export default { this.endDate = initEndDate; }, saveChrg(){ + var chrgAmt =0; + if (this.nmineeDivCd =='01') { + this.chrgDiv = 'E'; + chrgAmt = this.chrgAmtE + }else{ + this.chrgDiv='C'; + chrgAmt = this.chrgAmtC + } + + + if (chrgAmt<=0) { + this.row.title = '경고'; + this.row.msg1 = '충전금을 입력해주세요.'; + this.$parent.alertInsert(this.row); + return false; + } let param = { userId : this.userId, strtYm : this.startDate, endYm : this.endDate, - chrgAmt : this.chrgAmtE, + chrgDiv : this.chrgDiv, + chrgAmt : chrgAmt, } custMgtApi.insertChrg(param).then((respose)=> { 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 76268e6..bf40998 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 @@ -132,6 +132,7 @@ public interface CustMgtMapper { void addChrg(ChrgInfo chrgInfo); /**충전관리 삭제 */ void deleteChrg(DeleteChrgReqDto deleteChrgReqDto); + int updateChrgAmt(ChrgAmtDto chrgAmtDto); 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 5593b2c..60a6f23 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 @@ -5,6 +5,8 @@ import kr.co.uplus.ez.common.components.HubeasyApiComponents; import kr.co.uplus.ez.common.data.*; import kr.co.uplus.ez.common.utils.DateUtils; import kr.co.uplus.ez.common.utils.EncryptionUtil; +import kr.co.uplus.ez.common.utils.TextUtils; + import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.mybatis.spring.SqlSessionTemplate; @@ -1116,12 +1118,13 @@ public class CustMgtService { UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); - logger.debug("insertChrgReqDto= {}", insertChrgReqDto); +// logger.debug("insertChrgReqDto= {}", insertChrgReqDto); + ChrgInfo chrgInfo = new ChrgInfo(); chrgInfo.setChrgSeq(chrgSeq); chrgInfo.setUserSeq(userSeq); - chrgInfo.setChrgDiv(insertChrgReqDto.getChrdDiv()); + chrgInfo.setChrgDiv(insertChrgReqDto.getChrgDiv()); String StrYm = insertChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); String EndYm = insertChrgReqDto.getEndYm().replace("-", "").substring(0, 6); @@ -1132,6 +1135,48 @@ public class CustMgtService { custMgtMapper.insertChrgInfo(chrgInfo); + Date now = new Date(); + String presentYm = DateUtils.dateToStr(now, "yyyyMM"); + + ChrgAmtDto chrgAmtDto = new ChrgAmtDto(); + if (presentYm.equals(StrYm)) { + int resultcnt = 0; +// logger.debug("presentYm= {}", presentYm); + + if ("E".equals(insertChrgReqDto.getChrgDiv())) { + //소멸 충전금 업데이트 + chrgAmtDto.setUserSeq(userSeq); + chrgAmtDto.setLmtYm(chrgInfo.getStrtYm()); + chrgAmtDto.setExtcChrgAmt(chrgInfo.getChrgAmt()); + chrgAmtDto.setCfwdChrgAmt("0"); + resultcnt = custMgtMapper.updateChrgAmt(chrgAmtDto); + }else if ("C".equals(insertChrgReqDto.getChrgDiv())) { + //이월 충전금 업데이트 + chrgAmtDto.setUserSeq(userSeq); + chrgAmtDto.setLmtYm(chrgInfo.getStrtYm()); + chrgAmtDto.setCfwdChrgAmt(chrgInfo.getChrgAmt()); + chrgAmtDto.setExtcChrgAmt("0"); + resultcnt = custMgtMapper.updateChrgAmt(chrgAmtDto); + } + + //insert 및 update 성공시 resultCnt 0이상의 정수값이 return됨 + //update성공시 + if (resultcnt>0) { +// String clientKey = DateUtils.date2strYMDHMS() + "AD" + RandomStringUtils.randomAlphanumeric(8); +// SendMsgDto sendMsgDto = new SendMsgDto(); +// sendMsgDto.setClientKey(clientKey); +// sendMsgDto.setMsg("[LG U+ 메시지허브이지]\n" +// + " " + insertChrgReqDto.getChrgAmt() + " 입니다."); + } + } + + + +// EXTC_CHRG_AMT 소멸 충전금 +// CFWD_CHRG_AMT 이월 충전금 + + + return new InsertChrgResDto(ApiResponseCode.SUCCESS); } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java new file mode 100644 index 0000000..1712c99 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java @@ -0,0 +1,25 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class ChrgAmtDto implements Serializable{ + + /** 충전 SEQUENCE */ + private String chrgSeq; + /** 유저 SEQUENCE */ + private int userSeq; + /** 한도년월 */ + private String lmtYm; + /** 충전 시작년월 */ + private String strtYm; + /** 충전구분 */ + private String chrgDiv; + /** 소멸 충전금 */ + private String extcChrgAmt; + /** 이월 충전금 */ + private String cfwdChrgAmt; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java index 1de23bf..80ce72c 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java @@ -19,7 +19,7 @@ public class InsertChrgReqDto implements Serializable{ @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") private String userId; @ApiModelProperty(example = "충전구분", name = "충전구분", dataType = "String") - private String chrdDiv; + private String chrgDiv; @ApiModelProperty(example = "충전시작일", name = "충전시작일", dataType = "String") private String strtYm; @ApiModelProperty(example = "충전종료일", name = "충전종료일", dataType = "String") diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 6ea668b..2df71f0 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1297,7 +1297,7 @@ ) VALUES( #{chrgSeq} , #{userSeq} - , 'E' + , #{chrgDiv} , #{strtYm} , #{endYm} , #{chrgAmt} @@ -1309,6 +1309,20 @@ ) + + UPDATE + hubez_admin.EZ_USER_LMT eul + set + eul.MRT_LMT_AMT = eul.MRT_LMT_AMT + #{extcChrgAmt}+ #{cfwdChrgAmt} + ,eul.EXTC_CHRG_AMT = eul.EXTC_CHRG_AMT + #{extcChrgAmt} + ,eul.EXTC_CHRG_BLNC = eul.EXTC_CHRG_BLNC + #{extcChrgAmt} + ,eul.CFWD_CHRG_AMT = eul.CFWD_CHRG_AMT+ #{cfwdChrgAmt} + ,eul.CFWD_CHRG_BLNC = eul.CFWD_CHRG_BLNC+ #{cfwdChrgAmt} + WHERE eul.USER_SEQ = #{userSeq} + AND eul.LMT_YM =#{lmtYm} + + + UPDATE hubez_admin.EZ_CHARGE_MNG ecm From 01550bf64935e562d9cd86d94723a50e7211ff97 Mon Sep 17 00:00:00 2001 From: won503 Date: Wed, 5 Apr 2023 15:31:02 +0900 Subject: [PATCH 19/28] =?UTF-8?q?admin=5Fchrg=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EB=B0=9C=EC=86=A1=20=EA=B0=9C=EB=B0=9C=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uplus/ez/api/custMgt/CustMgtMapper.java | 5 + .../uplus/ez/api/custMgt/CustMgtService.java | 128 +++++++++++--- .../ez/api/custMgt/dto/InsertChrgReqDto.java | 3 - .../uplus/ez/api/custMgt/dto/NotiHistDto.java | 26 +++ .../ez/api/custMgt/dto/TargetSubsInfoDto.java | 32 ++++ .../ez/api/custMgt/dto/WebMsgCliDto.java | 162 ++++++++++++++++++ .../mapper/mysql/custMgt/custMgt-mapper.xml | 127 ++++++++++++++ 7 files changed, 455 insertions(+), 28 deletions(-) create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/NotiHistDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/TargetSubsInfoDto.java create mode 100644 src/main/java/kr/co/uplus/ez/api/custMgt/dto/WebMsgCliDto.java 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 bf40998..3b71d1f 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 @@ -4,6 +4,7 @@ import kr.co.uplus.ez.api.custMgt.dto.*; import kr.co.uplus.ez.common.data.ImUser; import org.apache.ibatis.annotations.Mapper; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -133,6 +134,10 @@ public interface CustMgtMapper { /**충전관리 삭제 */ void deleteChrg(DeleteChrgReqDto deleteChrgReqDto); int updateChrgAmt(ChrgAmtDto chrgAmtDto); + BigDecimal selectChargeAmt(@Valid TargetSubsInfoDto targetUserLimit); + void insertWebMsgCli(WebMsgCliDto ezMsgDto); + String selectNotiSeq(); + void insertNotiHst(NotiHistDto notihist); 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 60a6f23..448313a 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 @@ -21,7 +21,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -118,6 +121,21 @@ public class CustMgtService { @Value("${mail.templeteCode:E0005}") private String templeteCode; + /* 테이블명 */ + public static class TableName { + public static final String EZ_MSG_NORMAL = "EZ_MSG_NORMAL"; //일반 + public static final String EZ_MSG_REAL = "EZ_MSG_REAL"; //실시간보장 + public static final String EZ_MSG_BATCH = "EZ_MSG_BATCH"; //예약 + } + + /* 라인유형 */ + public static class LineTpCd { + public static final String LINE_TP_NORMAL = "normal"; //일반 + public static final String LINE_TP_REAL = "real"; //실시간보장 + public static final String LINE_TP_BATCH = "batch"; //예약 + } + + public static final String SND_CH_LMS = "LMS"; /** * date : 2022. 4. 25. auth : ckr desc : 청약 고객 정보 목록 조회 @@ -1094,14 +1112,6 @@ public class CustMgtService { if (getUserIdCount < 1) { return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); } - - // 1. 사용자 유무 확인 -// SvcUserInfo svcUserInfo = custMgtMapper.selectSvcUserInfo(insertChrgReqDto.getUserId()); -// -// if (svcUserInfo == null) { -// return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); -// } -// // // 2. 관리자 ID 존재 여부 체크. // SvcUserInfo svcUserInfo = custMgtMapper.selectSvcUserInfo(insertChrgReqDto.getUserId()); // @@ -1118,9 +1128,6 @@ public class CustMgtService { UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); -// logger.debug("insertChrgReqDto= {}", insertChrgReqDto); - - ChrgInfo chrgInfo = new ChrgInfo(); chrgInfo.setChrgSeq(chrgSeq); chrgInfo.setUserSeq(userSeq); @@ -1139,10 +1146,10 @@ public class CustMgtService { String presentYm = DateUtils.dateToStr(now, "yyyyMM"); ChrgAmtDto chrgAmtDto = new ChrgAmtDto(); + if (presentYm.equals(StrYm)) { int resultcnt = 0; -// logger.debug("presentYm= {}", presentYm); - + //1. user_lmt 등록 if ("E".equals(insertChrgReqDto.getChrgDiv())) { //소멸 충전금 업데이트 chrgAmtDto.setUserSeq(userSeq); @@ -1159,26 +1166,96 @@ public class CustMgtService { resultcnt = custMgtMapper.updateChrgAmt(chrgAmtDto); } + //2. 문자발송 //insert 및 update 성공시 resultCnt 0이상의 정수값이 return됨 //update성공시 + BigDecimal chargeAmt= BigDecimal.ZERO; + String webReqId = ""; + TargetSubsInfoDto targetUserLimit = new TargetSubsInfoDto(); + chargeAmt = custMgtMapper.selectChargeAmt(targetUserLimit); + if (resultcnt>0) { -// String clientKey = DateUtils.date2strYMDHMS() + "AD" + RandomStringUtils.randomAlphanumeric(8); -// SendMsgDto sendMsgDto = new SendMsgDto(); -// sendMsgDto.setClientKey(clientKey); -// sendMsgDto.setMsg("[LG U+ 메시지허브이지]\n" -// + " " + insertChrgReqDto.getChrgAmt() + " 입니다."); + WebMsgCliDto ezMsgDto = new WebMsgCliDto(); + ezMsgDto.setTableName(TableName.EZ_MSG_REAL); + ezMsgDto.setTrafficType(LineTpCd.LINE_TP_REAL); + String clientKey = generateClientKey("R", 10); + ezMsgDto.setClientKey(clientKey); + ezMsgDto.setReqProduct(SND_CH_LMS); + ezMsgDto.setMsgStatus("ready"); + ezMsgDto.setCallbackNumber("15445992"); + ezMsgDto.setPhone(targetUserLimit.getHpNo()); //관리자 hp번호 + ezMsgDto.setWebReqId(webReqId); + ezMsgDto.setOrderId("2"); + + String msg = "[LG U+메시지허브이지]\n 충전금액 "+chargeAmt+"원이 충전되셨습니다."; + ezMsgDto.setMsg(msg); + + custMgtMapper.insertWebMsgCli(ezMsgDto); + logger.info("충전 알림 등록 : [{}]", ezMsgDto.toString()); + + //알림 이력 insert + NotiHistDto notihist = new NotiHistDto(); + String notiSeq = custMgtMapper.selectNotiSeq(); + notihist.setUserSeq(targetUserLimit.getUserSeq()); + notihist.setNotiSeq(notiSeq); + notihist.setNotiMsg(msg); + notihist.setWebReqId(webReqId); + + custMgtMapper.insertNotiHst(notihist); } } - - -// EXTC_CHRG_AMT 소멸 충전금 -// CFWD_CHRG_AMT 이월 충전금 - - - return new InsertChrgResDto(ApiResponseCode.SUCCESS); } + /** + * clientKey 생성 + * + * @param rsvtType + * @return + */ + public String generateClientKey(String lineTpCdKey, int length) { + String prefix = getCurrentDate("yyyyMMddHHmmss") + lineTpCdKey; + String clientKey = ""; + + clientKey = getCommonId(prefix, length); + + return clientKey; + } + /** + * 날짜 형식을 받아서 오늘 날짜를 해당 형식으로 반환 + * + * @param format + * @return + */ + public static String getCurrentDate(String format) { + Date date = Calendar.getInstance().getTime(); + DateFormat dateFormat = new SimpleDateFormat(format); + return dateFormat.format(date); + } + /** + * 공통ID 생성(템플릿ID, 프로젝트ID, 사용자ID 등등) + * + * @return + */ + public static String getCommonId(String prefix, int len) { + // 공통 ID 접미사 + String suffix = randomGeneration(len); + + // 공통 ID + String commonId = prefix + suffix; + + return commonId; + } + /** + * 난수 생성(매개변수로 난수길이 세팅) + * + * @param len + * @return + */ + public static String randomGeneration(int len) { + String randomStr = RandomStringUtils.randomAlphanumeric(len); + return randomStr; + } /** * date : 2023. 3. 15. @@ -1187,6 +1264,7 @@ public class CustMgtService { * @param paramMap * @return */ + public UpdateChrgResDto UpdateChrg(@Valid UpdateChrgReqDto updateChrgReqDto) { CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java index 80ce72c..2033e25 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/InsertChrgReqDto.java @@ -32,7 +32,4 @@ public class InsertChrgReqDto implements Serializable{ private String bizrNo; - - - } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/NotiHistDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/NotiHistDto.java new file mode 100644 index 0000000..7c365e2 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/NotiHistDto.java @@ -0,0 +1,26 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class NotiHistDto implements Serializable { + private String sndYmd; //알림일자 + private String userSeq; //유저seq + private String notiDiv; //알림구분 + private String notiSeq; //알림seq + private String notiMsg; //알림 메세지 + private String webReqId;//알림전송id + private String regDt; //알림등록일자 + + /** 부모 유저 일련번호 */ + private String prntsUserSeq; + + /** 등록 일 시 */ + private String regId; + + /** 핸드폰 번호 */ + private String hpNo; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/TargetSubsInfoDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/TargetSubsInfoDto.java new file mode 100644 index 0000000..3cc69c0 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/TargetSubsInfoDto.java @@ -0,0 +1,32 @@ +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 TargetSubsInfoDto implements Serializable{ + + @ApiModelProperty(example = "청약ID", name = "청약ID", dataType = "String") + private String subsId; + @ApiModelProperty(example = "청약한 관리자ID userSeq", name = "청약한 관리자ID userSeq", dataType = "String") + private String userSeq; + @ApiModelProperty(example = "개통일시", name = "개통일시", dataType = "String") + private String opnDt; + @ApiModelProperty(example = "한도생성월", name = "한도생성월", dataType = "String") + private String limitYm; + @ApiModelProperty(example = "이월처리기간(월)", name = "이월처리기간(월)", dataType = "String") + private String cFwdTermMonth; + @ApiModelProperty(example = "청약상태", name = "청약상태", dataType = "String") + private String subsSttusCd; + @ApiModelProperty(example = "사용자 전화번호", name = "사용자 전화번호", dataType = "String") + private String hpNo; + + + + + + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/WebMsgCliDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/WebMsgCliDto.java new file mode 100644 index 0000000..55c77af --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/WebMsgCliDto.java @@ -0,0 +1,162 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class WebMsgCliDto implements Serializable{ + + /** 테이블명 */ + private String tableName; + + /** DB insert시 App에서 생성해서 만듦. format example : datetime + bsiness name + random string */ + private String clientKey; + + /** 문자 : SMS, LMS, MMS, 글로벌SMS : SMS_GLOBAL, RCS : RCS, 카카오톡 : KKO_NOTI (알림톡), KKO_FRIEND (친구톡) */ + private String reqProduct; + + /** 메시지 유형 ( 기본값 normal ), real : 실시간 보장 중요한 메시지, normal : 일반, ad : 마케팅, 광고 */ + private String trafficType; + + /** req : 발송 대기, sent : 발송완료, complete : 결과 수신 완료, pre-send : select 완료, pre-image : 이미지 등록 작업 중 */ + private String msgStatus; + + /** 고객 요청 시간, 미래시간일 경우 예약 */ + private String reqDate; + + /** 메시지허브에서 사용하는 템플릿 키 */ + private String templateCode; + + /** 동보 발송 묶음 단위, Agent에서 발송 시 multi_key가 동일한 메시지는 묶어서 발송하여 발송 효율을 높입니다. */ + private String sendGroupKey; + + /** 문자, RCS 일 때 필수 입력, 발신번호(*특수부가사업자의 경우 필수 아님) */ + private String callbackNumber; + + /** KISA 최초발신사업자 구분 코드, 직접고객은 config에 있는 값으로 사용, 재판매고객은 건별 입력으로 사용 */ + private String msgBizKey; + + /** 태그, 이벤트, 캠페인 등을 분류하기 위한 용도로 사용 */ + private String tag; + + /** 부서코드, 부서별 빌링이 필요한 경우만 사용 */ + private String deptCode; + + /** 메시지 내용 (text) */ + private String msg; + + /** 수신번호 */ + private String phone; + + /** 가변 데이터 */ + private String mergeData; + + /** 제목, 대상상품 : LMS/MMS/RCS/PUSH */ + private String title; + + /** MMS 파일 절대 경로, ","로 구분되어 N개를 입력할 수 있다. */ + private String fileList; + + /** 상품, SMS/LMS/MMS 만 가능 */ + private String fbProduct; + + /** fallback 제목 */ + private String fbTitle; + + /** fallback 메시지 */ + private String fbMsg; + + /** 파일 아이디 단일파일 제공, fallback MMS는 이미지 사전 등록 방식만 제공함 */ + private String fbFileId; + + /** 메시지베이스 ID */ + private String rcsMsgbaseId; + + /** RCS 메시지 유형, info : 정보성 메시지, ad : 광고성 메시지 */ + private String rcsHeader; + + /** 무료수신거부 번호 (header의 값이 광고성일 때 footer 값을 포함하지 않고 발송하면 실패 처리) */ + private String rcsFooter; + + /** 사용자의 복사/공유 허용여부, 기본값 Y, Y : 허용, N : 미허용 */ + private String rcsCopyAllowed; + + /** 발송 타임아웃 옵션 : 옵션의 시간 만큼 발송을 시도 또는 결과 대기함, 1 : 72시간, 2 :30초 */ + private String rcsExpiryOption; + + /* + * 대행사 ID, 메시지허브와 직접 계약한 고객은 사용하지 않음, + * 재판매 사업자의 경우 RCS 브랜드 사업자와 RCS 발송 계약을 맺은 1차 대행사의 id를 넣어야 함 + */ + private String rcsAgencyId; + + /** RCS 버튼 Object array */ + private String rcsButton; + + /** 카카오톡 발신 프로필키 */ + private String kakaoSenderKey; + + /** 알림톡, 친구톡 템플릿 키 */ + private String kakaoTemplateKey; + + /** 카카오 버튼 Object array(LMKakaoButton) */ + private String kakaoButton; + + /** 친구톡 와이드 이미지 여부(Y/N) */ + private String kakaoImageWideYn; + + /** 친구톡 이미지(이미지 URL) */ + private String kakaoImageUrl; + + /** 친구톡 이미지(이미지 링크) */ + private String kakaoImageLink; + + /** kakao 파일 아이디 */ + private String kakaoFileId; + + /** 광고 표기 여부(Y/N) */ + private String kakaoAdFlag; + + /** 앱 아이디 */ + private String pushAppId; + + /** PUSH 공급자, FCM : 구글, APNS : 애플 */ + private String pushProvider; + + /** 앱 사용자 시 사용되는 아이디 */ + private String pushAppUserId; + + /** 발송 시간, Agent가 메시지허브로 발송 한 시간 */ + private String sentDate; + + /** 성공한 상품 종류, SMS, LMS, MMS, RCS_XXX, KKO_XXX, PUSH */ + private String doneProduct; + + /** 단말 전달 시간 or 실패 최종 시간 */ + private String doneDate; + + /** 처리 결과 코드, 10000 : 성공 */ + private String doneCode; + + /** 처리 결과 상세 */ + private String doneCodeDesc; + + /** 대체 발송 처리 상세. json array */ + private String doneFbDetail; + + /** 이통사 정보, 발송이 성공이고 채널이 문자, RCS 인 경우만 업데이트 됨 */ + private String doneTelco; + + /** 웹요청ID */ + private String webReqId; + + /* 승인오더ID */ + private String orderId; + + private String tmpltSbst; + private String tmpltTpCd; + private String etcInfo; + private String adMsg; +} diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 2df71f0..7c9b206 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1309,6 +1309,133 @@ ) + + + /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ + INSERT INTO + + hubez_send.EZ_MSG_NORMAL + + + hubez_send.EZ_MSG_REAL + + ( + CLIENT_KEY, + REQ_PRODUCT, + TRAFFIC_TYPE, + MSG_STATUS, + REQ_DATE, + MSG_BIZ_KEY, + TEMPLATE_CODE, + SEND_GROUP_KEY, + CALLBACK_NUMBER, + DEPT_CODE, + MSG, + PHONE, + MERGE_DATA, + TITLE, + FILE_LIST, + FB_PRODUCT, + FB_TITLE, + FB_MSG, + FB_FILE_ID, + RCS_MSGBASE_ID, + RCS_HEADER, + RCS_FOOTER, + RCS_COPY_ALLOWED, + RCS_EXPIRY_OPTION, + RCS_AGENCY_ID, + RCS_BUTTON, + KAKAO_SENDER_KEY, + KAKAO_TEMPLATE_KEY, + KAKAO_BUTTON, + KAKAO_IMAGE_WIDE_YN, + KAKAO_IMAGE_URL, + KAKAO_IMAGE_LINK, + PUSH_APP_ID, + PUSH_PROVIDER, + PUSH_APP_USER_ID, + WEB_REQ_ID, + ORDER_ID + ) + VALUES + ( + #{clientKey}, + #{reqProduct}, + #{trafficType}, + #{msgStatus}, + DATE_ADD(NOW(), INTERVAL +8 HOUR), + #{msgBizKey}, + #{templateCode}, + #{sendGroupKey}, + #{callbackNumber}, + #{deptCode}, + #{msg}, + #{phone}, + #{mergeData}, + '충전금액알림', + #{fileList}, + #{fbProduct}, + #{fbTitle}, + #{fbMsg}, + #{fbFileId}, + #{rcsMsgbaseId}, + #{rcsHeader}, + #{rcsFooter}, + #{rcsCopyAllowed}, + #{rcsExpiryOption}, + #{rcsAgencyId}, + #{rcsButton}, + #{kakaoSenderKey}, + #{kakaoTemplateKey}, + #{kakaoButton}, + #{kakaoImageWideYn}, + #{kakaoImageUrl}, + #{kakaoImageLink}, + #{pushAppId}, + #{pushProvider}, + #{pushAppUserId}, + #{webReqId}, + #{orderId} + ) + + + + /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ + INSERT INTO hubez_common.EZ_NOTI_HIST + ( + SND_YMD, + USER_SEQ, + NOTI_SEQ, + NOTI_DIV, + NOTI_MSG, + WEB_REQ_ID, + REG_DT + ) + VALUES + ( + DATE_FORMAT(NOW(), '%Y%m%d'), + #{userSeq}, + #{notiSeq}, + '04', + #{notiMsg}, + #{webReqId}, + NOW() + ) + + UPDATE hubez_admin.EZ_USER_LMT eul From d37f435016de9fadb9eb8249d0852fe19e0b15e5 Mon Sep 17 00:00:00 2001 From: kubo8 Date: Thu, 6 Apr 2023 09:56:16 +0900 Subject: [PATCH 20/28] merge test --- .../mapper/mysql/custMgt/custMgt-mapper.xml | 3196 +++++++++-------- 1 file changed, 1670 insertions(+), 1526 deletions(-) diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 2df71f0..8dbffea 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1,1526 +1,1670 @@ - - - - - - - - - - - - - AND esi.SUBS_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') - - - AND esi.SUBS_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') - - - AND esi.SUBS_STTUS_CD = #{searchType1} - - - - AND eiu.EX_PROVUSERTYPE is null - - - AND eiu.EX_PROVUSERTYPE = 'DEALER' - - - AND eiu.EX_PROVUSERTYPE in ( 'CCS-CS1' - , 'CCS-CB1' - , 'CCS-CB2' - , 'CCS-CJ' - , 'CCS-LS2' - , 'CCS-LS3' - , 'CCS-M' - , 'CCS-MJ' - , 'CCS-P' - , 'CCS-P2' - , 'CCS-D' - , 'CCS-G' - , 'CCS-S') - - - AND eiu.EX_PROVUSERTYPE not in ( 'CCS-CS1' - , 'CCS-CB1' - , 'CCS-CB2' - , 'CCS-CJ' - , 'CCS-LS2' - , 'CCS-LS3' - , 'CCS-M' - , 'CCS-MJ' - , 'CCS-P' - , 'CCS-P2' - , 'CCS-D' - , 'CCS-G' - , 'CCS-S', 'DEALER') - - - - - AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(esi.ENTR_NO) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(eci.BIZRNO) LIKE UPPER(CONCAT('%', #{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) */ - 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, - 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}, - (SELECT LINE_TP_CD FROM hubez_common.EZ_SVC_USER WHERE USER_SEQ = esu.USER_SEQ), - #{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 USER_SEQ FROM (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}) as sub1) - - - - /* 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} - - - ,LINE_TP_CD = #{lineType} - - WHERE - USER_ID = #{userId} - - - - - - - - - - - - - AND esu.REG_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') - - - AND esu.REG_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') - - - AND esu.USER_STTUS_CD = #{searchType1} - - - AND esu.USER_TP_CD = #{searchType2} - - - - AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(esu.USER_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND esu.USER_SEQ IN (SELECT PRNTS_USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID LIKE CONCAT('%', #{searchText1}, '%') AND USER_TP_CD ='01') - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* custMgt-mapper.xml(insertCustInfo) */ - INSERT - INTO - hubez_common.EZ_CUST_INFO( - CUST_SEQ, - BIZRNO, - CUST_NM, - CUST_TY_CD, - CORPNO, - REPR_NM, - BRTHDY, - ZIPCD, - ADDR1, - ADDR2, - REG_ID, - REG_DT, - CHG_ID, - CHG_DT - )VALUES( - #{custSeq}, - #{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} - , #{prntsUserSeq} - , #{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 - ,ENTR_NO - ,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} - ,#{entrNo} - , #{userSeq} - , #{custSeq} - , #{subsSttusCd} - , #{prodCd} - , NOW() - , 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 1=1 - AND USER_ID IN - - #{item.userId} - - - AND USER_TP_CD = '02' - - - - - - /* custMgt-mapper.xml(updateAdminInfoTotal) */ - UPDATE hubez_common.EZ_SVC_USER - SET - CHG_ID = #{userId} - ,CHG_DT = NOW() - - ,USER_STTUS_CD = #{userStat} - - - ,LINE_TP_CD = #{lineType} - - WHERE USER_ID = #{userId} - - - - /* custMgt-mapper.xml(updateMemberInfo) */ - UPDATE hubez_common.EZ_SVC_USER SET - USER_NM = #{userNm}, - HP_NO = #{hpNo}, - EMAIL = #{email}, - USER_STTUS_CD = #{userStat}, - LINE_TP_CD = #{lineType}, - CHG_ID = #{userId}, - CHG_DT = NOW() - WHERE - USER_ID = #{userId} - - - - /* custMgt-mapper.xml(insertMemo) */ - INSERT INTO hubez_common.EZ_USER_MEMO( - USER_SEQ - ,MEMO - ,MKER_ID - ,MKER_NM - ,REG_ID - ,REG_DT - ) SELECT - esu.USER_SEQ - , #{memo} - , #{userId} - , esu.USER_NM - , #{userId} - , NOW() - FROM hubez_common.EZ_SVC_USER esu - WHERE esu.USER_ID = #{userId} - - - - - - UPDATE hubez_admin.EZ_USER_LMT - SET - CHG_ID = #{userId} - ,CHG_DT = NOW() - - ,MRT_LMT_AMT = #{sendingLimit} - - WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId} LIMIT 1) - AND LMT_YM = DATE_FORMAT(NOW(),'%Y%m') - - - - - - - - - - - - - /* custMgt-mapper.xml(insertSbscstHst) */ - INSERT INTO hubez_common.EZ_SBSCST_HST( - SUBS_ID - ,EFCT_ST_DT - - ,EFCT_FNS_DT - - ,PROD_CD - ,SUBS_STTUS_CD - ,REG_ID - ,REG_DT - ,CHG_ID - ,CHG_DT - )VALUES( - #{subsId} - , #{efctStDt} - - , STR_TO_DATE('9999-12-31', '%Y-%m-%d') - - , #{prodCd} - , #{subsSttusCd} - , #{regId} - , now() - , #{regId} - , now() - ) - - - - - - - - - - - /* custMgt-mapper.xml(insertOrder) */ - INSERT INTO hubez_admin.EZ_ORDER( - ORDER_ID - ,ORDER_CRET_DT - ,ORDER_TY_CD - ,REG_ID - )VALUES( - #{orderId} - , STR_TO_DATE(#{orderCretDt}, '%y%m%d%H%i%s') - , #{orderTyCd} - , #{regId} - ) - - - - - /* custMgt-mapper.xml(insertLmtdctDtl) */ - INSERT INTO hubez_admin.EZ_LMTDCT_DTL( - ORDER_CRET_DT - ,USER_SEQ - ,LMT_YM - ,USE_YM - ,LMT_TP_CD - ,DDCT_TP_CD - ,DDCT_AMT - ,EXE_ORDER_ID - ,SNDDCT_ORDER_ID - ,REG_ID - ,REG_DT - )VALUES( - #{orderCretDt} - , #{userSeq} - , #{lmtYm} - , #{useYm} - , #{lmtTpCd} - , #{ddctTpcd} - , #{ddctAmt} - , #{exeOrderId} - , #{snddctOrderId} - , #{regId} - , now() - ) - - - - - /* custMgt-mapper.xml(insertUserLmt) */ - INSERT INTO hubez_admin.EZ_USER_LMT( - USER_SEQ - ,LMT_YM - ,FX_LMT_AMT - ,MRT_LMT_AMT - ,CFWD_AMT - ,EXTNC_AMT - ,CFWD_RSTRT_BLNC - ,FX_BLNC - ,MRT_USE_AMT - ,SMS_USE_AMT - ,MMS_USE_AMT - ,LMS_USE_AMT - ,ATLK_USE_AMT - ,SMS_USE_CNT - ,LMS_USE_CNT - ,MMS_USE_CNT - ,ATLK_USE_CNT - ,REG_ID - ,REG_DT - ,CHG_ID - ,CHG_DT - )VALUES( - #{userSeq} - , #{lmtYm} - , #{fxLmtAmt} - , #{mrtLmtAmt} - , 0 - , 0 - , 0 - , #{fxBlnc} - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , #{regId} - ,now() - , #{chgId} - ,now() - ) - - - - - /* custMgt-mapper.xml(updateBindDcYn) */ - UPDATE hubez_common.EZ_SUBS_INFO - SET - BIND_DC_YN = #{bindDcYn}, - CHG_DT = NOW() - WHERE - ENTR_NO = #{entrNo} - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO hubez_admin.EZ_CHARGE_MNG ( - CHRG_SEQ - , USER_SEQ - , CHRG_DIV - , STRT_YM - , END_YM - , CHRG_AMT - , USE_YN - , REG_ID - , REG_DT - , CHG_ID - , CHG_DT - ) VALUES( - #{chrgSeq} - , #{userSeq} - , #{chrgDiv} - , #{strtYm} - , #{endYm} - , #{chrgAmt} - , 'Y' - , #{regId} - , NOW() - , #{regId} - , NOW() - ) - - - - UPDATE - hubez_admin.EZ_USER_LMT eul - set - eul.MRT_LMT_AMT = eul.MRT_LMT_AMT + #{extcChrgAmt}+ #{cfwdChrgAmt} - ,eul.EXTC_CHRG_AMT = eul.EXTC_CHRG_AMT + #{extcChrgAmt} - ,eul.EXTC_CHRG_BLNC = eul.EXTC_CHRG_BLNC + #{extcChrgAmt} - ,eul.CFWD_CHRG_AMT = eul.CFWD_CHRG_AMT+ #{cfwdChrgAmt} - ,eul.CFWD_CHRG_BLNC = eul.CFWD_CHRG_BLNC+ #{cfwdChrgAmt} - WHERE eul.USER_SEQ = #{userSeq} - AND eul.LMT_YM =#{lmtYm} - - - - - UPDATE - hubez_admin.EZ_CHARGE_MNG ecm - set - ecm.USE_YN ='N' - WHERE ecm.CHRG_SEQ = #{chrgSeq} - - - - INSERT INTO hubez_admin.EZ_CHARGE_MNG ( - CHRG_SEQ - , USER_SEQ - , CHRG_DIV - , STRT_YM - , END_YM - , CHRG_AMT - , USE_YN - , REG_ID - , REG_DT - , CHG_ID - , CHG_DT - ) VALUES( - #{chrgSeq} - , #{userSeq} - , 'E' - , #{strtYm} - , #{endYm} - , #{chrgAmt} - , 'Y' - , #{regId} - , NOW() - , #{regId} - , NOW() - ) - - - - UPDATE - hubez_admin.EZ_CHARGE_MNG ecm - set - ecm.USE_YN ='N' - WHERE ecm.CHRG_SEQ in - - #{list.chrgSeq} - - - - - - + + + + + + + + + + + + + AND esi.SUBS_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') + + + AND esi.SUBS_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') + + + AND esi.SUBS_STTUS_CD = #{searchType1} + + + + AND eiu.EX_PROVUSERTYPE is null + + + AND eiu.EX_PROVUSERTYPE = 'DEALER' + + + AND eiu.EX_PROVUSERTYPE in ( 'CCS-CS1' + , 'CCS-CB1' + , 'CCS-CB2' + , 'CCS-CJ' + , 'CCS-LS2' + , 'CCS-LS3' + , 'CCS-M' + , 'CCS-MJ' + , 'CCS-P' + , 'CCS-P2' + , 'CCS-D' + , 'CCS-G' + , 'CCS-S') + + + AND eiu.EX_PROVUSERTYPE not in ( 'CCS-CS1' + , 'CCS-CB1' + , 'CCS-CB2' + , 'CCS-CJ' + , 'CCS-LS2' + , 'CCS-LS3' + , 'CCS-M' + , 'CCS-MJ' + , 'CCS-P' + , 'CCS-P2' + , 'CCS-D' + , 'CCS-G' + , 'CCS-S', 'DEALER') + + + + + AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esi.ENTR_NO) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(eci.BIZRNO) LIKE UPPER(CONCAT('%', #{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) */ + 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, + 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}, + (SELECT LINE_TP_CD FROM hubez_common.EZ_SVC_USER WHERE USER_SEQ = esu.USER_SEQ), + #{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 USER_SEQ FROM (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}) as sub1) + + + + /* 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} + + + ,LINE_TP_CD = #{lineType} + + WHERE + USER_ID = #{userId} + + + + + + + + + + + + + AND esu.REG_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') + + + AND esu.REG_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') + + + AND esu.USER_STTUS_CD = #{searchType1} + + + AND esu.USER_TP_CD = #{searchType2} + + + + AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esu.USER_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND esu.USER_SEQ IN (SELECT PRNTS_USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID LIKE CONCAT('%', #{searchText1}, '%') AND USER_TP_CD ='01') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* custMgt-mapper.xml(insertCustInfo) */ + INSERT + INTO + hubez_common.EZ_CUST_INFO( + CUST_SEQ, + BIZRNO, + CUST_NM, + CUST_TY_CD, + CORPNO, + REPR_NM, + BRTHDY, + ZIPCD, + ADDR1, + ADDR2, + REG_ID, + REG_DT, + CHG_ID, + CHG_DT + )VALUES( + #{custSeq}, + #{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} + , #{prntsUserSeq} + , #{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 + ,ENTR_NO + ,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} + ,#{entrNo} + , #{userSeq} + , #{custSeq} + , #{subsSttusCd} + , #{prodCd} + , NOW() + , 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 1=1 + AND USER_ID IN + + #{item.userId} + + + AND USER_TP_CD = '02' + + + + + + /* custMgt-mapper.xml(updateAdminInfoTotal) */ + UPDATE hubez_common.EZ_SVC_USER + SET + CHG_ID = #{userId} + ,CHG_DT = NOW() + + ,USER_STTUS_CD = #{userStat} + + + ,LINE_TP_CD = #{lineType} + + WHERE USER_ID = #{userId} + + + + /* custMgt-mapper.xml(updateMemberInfo) */ + UPDATE hubez_common.EZ_SVC_USER SET + USER_NM = #{userNm}, + HP_NO = #{hpNo}, + EMAIL = #{email}, + USER_STTUS_CD = #{userStat}, + LINE_TP_CD = #{lineType}, + CHG_ID = #{userId}, + CHG_DT = NOW() + WHERE + USER_ID = #{userId} + + + + /* custMgt-mapper.xml(insertMemo) */ + INSERT INTO hubez_common.EZ_USER_MEMO( + USER_SEQ + ,MEMO + ,MKER_ID + ,MKER_NM + ,REG_ID + ,REG_DT + ) SELECT + esu.USER_SEQ + , #{memo} + , #{userId} + , esu.USER_NM + , #{userId} + , NOW() + FROM hubez_common.EZ_SVC_USER esu + WHERE esu.USER_ID = #{userId} + + + + + + UPDATE hubez_admin.EZ_USER_LMT + SET + CHG_ID = #{userId} + ,CHG_DT = NOW() + + ,MRT_LMT_AMT = #{sendingLimit} + + WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId} LIMIT 1) + AND LMT_YM = DATE_FORMAT(NOW(),'%Y%m') + + + + + + + + + + + + + /* custMgt-mapper.xml(insertSbscstHst) */ + INSERT INTO hubez_common.EZ_SBSCST_HST( + SUBS_ID + ,EFCT_ST_DT + + ,EFCT_FNS_DT + + ,PROD_CD + ,SUBS_STTUS_CD + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + )VALUES( + #{subsId} + , #{efctStDt} + + , STR_TO_DATE('9999-12-31', '%Y-%m-%d') + + , #{prodCd} + , #{subsSttusCd} + , #{regId} + , now() + , #{regId} + , now() + ) + + + + + + + + + + + /* custMgt-mapper.xml(insertOrder) */ + INSERT INTO hubez_admin.EZ_ORDER( + ORDER_ID + ,ORDER_CRET_DT + ,ORDER_TY_CD + ,REG_ID + )VALUES( + #{orderId} + , STR_TO_DATE(#{orderCretDt}, '%y%m%d%H%i%s') + , #{orderTyCd} + , #{regId} + ) + + + + + /* custMgt-mapper.xml(insertLmtdctDtl) */ + INSERT INTO hubez_admin.EZ_LMTDCT_DTL( + ORDER_CRET_DT + ,USER_SEQ + ,LMT_YM + ,USE_YM + ,LMT_TP_CD + ,DDCT_TP_CD + ,DDCT_AMT + ,EXE_ORDER_ID + ,SNDDCT_ORDER_ID + ,REG_ID + ,REG_DT + )VALUES( + #{orderCretDt} + , #{userSeq} + , #{lmtYm} + , #{useYm} + , #{lmtTpCd} + , #{ddctTpcd} + , #{ddctAmt} + , #{exeOrderId} + , #{snddctOrderId} + , #{regId} + , now() + ) + + + + + /* custMgt-mapper.xml(insertUserLmt) */ + INSERT INTO hubez_admin.EZ_USER_LMT( + USER_SEQ + ,LMT_YM + ,FX_LMT_AMT + ,MRT_LMT_AMT + ,CFWD_AMT + ,EXTNC_AMT + ,CFWD_RSTRT_BLNC + ,FX_BLNC + ,MRT_USE_AMT + ,SMS_USE_AMT + ,MMS_USE_AMT + ,LMS_USE_AMT + ,ATLK_USE_AMT + ,SMS_USE_CNT + ,LMS_USE_CNT + ,MMS_USE_CNT + ,ATLK_USE_CNT + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + )VALUES( + #{userSeq} + , #{lmtYm} + , #{fxLmtAmt} + , #{mrtLmtAmt} + , 0 + , 0 + , 0 + , #{fxBlnc} + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , #{regId} + ,now() + , #{chgId} + ,now() + ) + + + + + /* custMgt-mapper.xml(updateBindDcYn) */ + UPDATE hubez_common.EZ_SUBS_INFO + SET + BIND_DC_YN = #{bindDcYn}, + CHG_DT = NOW() + WHERE + ENTR_NO = #{entrNo} + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO hubez_admin.EZ_CHARGE_MNG ( + CHRG_SEQ + , USER_SEQ + , CHRG_DIV + , STRT_YM + , END_YM + , CHRG_AMT + , USE_YN + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT + ) VALUES( + #{chrgSeq} + , #{userSeq} + , #{chrgDiv} + , #{strtYm} + , #{endYm} + , #{chrgAmt} + , 'Y' + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + + + UPDATE + hubez_admin.EZ_USER_LMT eul + set + eul.MRT_LMT_AMT = eul.MRT_LMT_AMT + #{extcChrgAmt}+ #{cfwdChrgAmt} + ,eul.EXTC_CHRG_AMT = eul.EXTC_CHRG_AMT + #{extcChrgAmt} + ,eul.EXTC_CHRG_BLNC = eul.EXTC_CHRG_BLNC + #{extcChrgAmt} + ,eul.CFWD_CHRG_AMT = eul.CFWD_CHRG_AMT+ #{cfwdChrgAmt} + ,eul.CFWD_CHRG_BLNC = eul.CFWD_CHRG_BLNC+ #{cfwdChrgAmt} + WHERE eul.USER_SEQ = #{userSeq} + AND eul.LMT_YM =#{lmtYm} + + + + + UPDATE + hubez_admin.EZ_CHARGE_MNG ecm + set + ecm.USE_YN ='N' + WHERE ecm.CHRG_SEQ = #{chrgSeq} + + + + INSERT INTO hubez_admin.EZ_CHARGE_MNG ( + CHRG_SEQ + , USER_SEQ + , CHRG_DIV + , STRT_YM + , END_YM + , CHRG_AMT + , USE_YN + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT + ) VALUES( + #{chrgSeq} + , #{userSeq} + , 'E' + , #{strtYm} + , #{endYm} + , #{chrgAmt} + , 'Y' + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + UPDATE + hubez_admin.EZ_CHARGE_MNG ecm + set + ecm.USE_YN ='N' + WHERE ecm.CHRG_SEQ in + + #{list.chrgSeq} + + + + + + + + + + + + + /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ + INSERT INTO + + hubez_send.EZ_MSG_NORMAL + + + hubez_send.EZ_MSG_REAL + + ( + CLIENT_KEY, + REQ_PRODUCT, + TRAFFIC_TYPE, + MSG_STATUS, + REQ_DATE, + MSG_BIZ_KEY, + TEMPLATE_CODE, + SEND_GROUP_KEY, + CALLBACK_NUMBER, + DEPT_CODE, + MSG, + PHONE, + MERGE_DATA, + TITLE, + FILE_LIST, + FB_PRODUCT, + FB_TITLE, + FB_MSG, + FB_FILE_ID, + RCS_MSGBASE_ID, + RCS_HEADER, + RCS_FOOTER, + RCS_COPY_ALLOWED, + RCS_EXPIRY_OPTION, + RCS_AGENCY_ID, + RCS_BUTTON, + KAKAO_SENDER_KEY, + KAKAO_TEMPLATE_KEY, + KAKAO_BUTTON, + KAKAO_IMAGE_WIDE_YN, + KAKAO_IMAGE_URL, + KAKAO_IMAGE_LINK, + PUSH_APP_ID, + PUSH_PROVIDER, + PUSH_APP_USER_ID, + WEB_REQ_ID, + ORDER_ID + ) + VALUES + ( + #{clientKey}, + #{reqProduct}, + #{trafficType}, + #{msgStatus}, + NOW(), + #{msgBizKey}, + #{templateCode}, + #{sendGroupKey}, + #{callbackNumber}, + #{deptCode}, + #{msg}, + #{phone}, + #{mergeData}, + '충전금액알림', + #{fileList}, + #{fbProduct}, + #{fbTitle}, + #{fbMsg}, + #{fbFileId}, + #{rcsMsgbaseId}, + #{rcsHeader}, + #{rcsFooter}, + #{rcsCopyAllowed}, + #{rcsExpiryOption}, + #{rcsAgencyId}, + #{rcsButton}, + #{kakaoSenderKey}, + #{kakaoTemplateKey}, + #{kakaoButton}, + #{kakaoImageWideYn}, + #{kakaoImageUrl}, + #{kakaoImageLink}, + #{pushAppId}, + #{pushProvider}, + #{pushAppUserId}, + #{webReqId}, + #{orderId} + ) + + + + /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ + INSERT INTO hubez_common.EZ_NOTI_HIST + ( + SND_YMD, + USER_SEQ, + NOTI_SEQ, + NOTI_DIV, + NOTI_MSG, + WEB_REQ_ID, + REG_DT + ) + VALUES + ( + DATE_FORMAT(NOW(), '%Y%m%d'), + #{userSeq}, + #{notiSeq}, + '04', + #{notiMsg}, + #{webReqId}, + NOW() + ) + + From 710f6b6ff7d03d5d92cc9fea5f4395eed2424eb1 Mon Sep 17 00:00:00 2001 From: kubo8 Date: Thu, 6 Apr 2023 10:14:35 +0900 Subject: [PATCH 21/28] =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/mysql/custMgt/custMgt-mapper.xml | 3456 +++++++++-------- 1 file changed, 1786 insertions(+), 1670 deletions(-) diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 8dbffea..0b10c06 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1,1670 +1,1786 @@ - - - - - - - - - - - - - AND esi.SUBS_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') - - - AND esi.SUBS_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') - - - AND esi.SUBS_STTUS_CD = #{searchType1} - - - - AND eiu.EX_PROVUSERTYPE is null - - - AND eiu.EX_PROVUSERTYPE = 'DEALER' - - - AND eiu.EX_PROVUSERTYPE in ( 'CCS-CS1' - , 'CCS-CB1' - , 'CCS-CB2' - , 'CCS-CJ' - , 'CCS-LS2' - , 'CCS-LS3' - , 'CCS-M' - , 'CCS-MJ' - , 'CCS-P' - , 'CCS-P2' - , 'CCS-D' - , 'CCS-G' - , 'CCS-S') - - - AND eiu.EX_PROVUSERTYPE not in ( 'CCS-CS1' - , 'CCS-CB1' - , 'CCS-CB2' - , 'CCS-CJ' - , 'CCS-LS2' - , 'CCS-LS3' - , 'CCS-M' - , 'CCS-MJ' - , 'CCS-P' - , 'CCS-P2' - , 'CCS-D' - , 'CCS-G' - , 'CCS-S', 'DEALER') - - - - - AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(esi.ENTR_NO) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(eci.BIZRNO) LIKE UPPER(CONCAT('%', #{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) */ - 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, - 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}, - (SELECT LINE_TP_CD FROM hubez_common.EZ_SVC_USER WHERE USER_SEQ = esu.USER_SEQ), - #{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 USER_SEQ FROM (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}) as sub1) - - - - /* 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} - - - ,LINE_TP_CD = #{lineType} - - WHERE - USER_ID = #{userId} - - - - - - - - - - - - - AND esu.REG_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') - - - AND esu.REG_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') - - - AND esu.USER_STTUS_CD = #{searchType1} - - - AND esu.USER_TP_CD = #{searchType2} - - - - AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND UPPER(esu.USER_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) - - - AND esu.USER_SEQ IN (SELECT PRNTS_USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID LIKE CONCAT('%', #{searchText1}, '%') AND USER_TP_CD ='01') - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* custMgt-mapper.xml(insertCustInfo) */ - INSERT - INTO - hubez_common.EZ_CUST_INFO( - CUST_SEQ, - BIZRNO, - CUST_NM, - CUST_TY_CD, - CORPNO, - REPR_NM, - BRTHDY, - ZIPCD, - ADDR1, - ADDR2, - REG_ID, - REG_DT, - CHG_ID, - CHG_DT - )VALUES( - #{custSeq}, - #{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} - , #{prntsUserSeq} - , #{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 - ,ENTR_NO - ,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} - ,#{entrNo} - , #{userSeq} - , #{custSeq} - , #{subsSttusCd} - , #{prodCd} - , NOW() - , 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 1=1 - AND USER_ID IN - - #{item.userId} - - - AND USER_TP_CD = '02' - - - - - - /* custMgt-mapper.xml(updateAdminInfoTotal) */ - UPDATE hubez_common.EZ_SVC_USER - SET - CHG_ID = #{userId} - ,CHG_DT = NOW() - - ,USER_STTUS_CD = #{userStat} - - - ,LINE_TP_CD = #{lineType} - - WHERE USER_ID = #{userId} - - - - /* custMgt-mapper.xml(updateMemberInfo) */ - UPDATE hubez_common.EZ_SVC_USER SET - USER_NM = #{userNm}, - HP_NO = #{hpNo}, - EMAIL = #{email}, - USER_STTUS_CD = #{userStat}, - LINE_TP_CD = #{lineType}, - CHG_ID = #{userId}, - CHG_DT = NOW() - WHERE - USER_ID = #{userId} - - - - /* custMgt-mapper.xml(insertMemo) */ - INSERT INTO hubez_common.EZ_USER_MEMO( - USER_SEQ - ,MEMO - ,MKER_ID - ,MKER_NM - ,REG_ID - ,REG_DT - ) SELECT - esu.USER_SEQ - , #{memo} - , #{userId} - , esu.USER_NM - , #{userId} - , NOW() - FROM hubez_common.EZ_SVC_USER esu - WHERE esu.USER_ID = #{userId} - - - - - - UPDATE hubez_admin.EZ_USER_LMT - SET - CHG_ID = #{userId} - ,CHG_DT = NOW() - - ,MRT_LMT_AMT = #{sendingLimit} - - WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId} LIMIT 1) - AND LMT_YM = DATE_FORMAT(NOW(),'%Y%m') - - - - - - - - - - - - - /* custMgt-mapper.xml(insertSbscstHst) */ - INSERT INTO hubez_common.EZ_SBSCST_HST( - SUBS_ID - ,EFCT_ST_DT - - ,EFCT_FNS_DT - - ,PROD_CD - ,SUBS_STTUS_CD - ,REG_ID - ,REG_DT - ,CHG_ID - ,CHG_DT - )VALUES( - #{subsId} - , #{efctStDt} - - , STR_TO_DATE('9999-12-31', '%Y-%m-%d') - - , #{prodCd} - , #{subsSttusCd} - , #{regId} - , now() - , #{regId} - , now() - ) - - - - - - - - - - - /* custMgt-mapper.xml(insertOrder) */ - INSERT INTO hubez_admin.EZ_ORDER( - ORDER_ID - ,ORDER_CRET_DT - ,ORDER_TY_CD - ,REG_ID - )VALUES( - #{orderId} - , STR_TO_DATE(#{orderCretDt}, '%y%m%d%H%i%s') - , #{orderTyCd} - , #{regId} - ) - - - - - /* custMgt-mapper.xml(insertLmtdctDtl) */ - INSERT INTO hubez_admin.EZ_LMTDCT_DTL( - ORDER_CRET_DT - ,USER_SEQ - ,LMT_YM - ,USE_YM - ,LMT_TP_CD - ,DDCT_TP_CD - ,DDCT_AMT - ,EXE_ORDER_ID - ,SNDDCT_ORDER_ID - ,REG_ID - ,REG_DT - )VALUES( - #{orderCretDt} - , #{userSeq} - , #{lmtYm} - , #{useYm} - , #{lmtTpCd} - , #{ddctTpcd} - , #{ddctAmt} - , #{exeOrderId} - , #{snddctOrderId} - , #{regId} - , now() - ) - - - - - /* custMgt-mapper.xml(insertUserLmt) */ - INSERT INTO hubez_admin.EZ_USER_LMT( - USER_SEQ - ,LMT_YM - ,FX_LMT_AMT - ,MRT_LMT_AMT - ,CFWD_AMT - ,EXTNC_AMT - ,CFWD_RSTRT_BLNC - ,FX_BLNC - ,MRT_USE_AMT - ,SMS_USE_AMT - ,MMS_USE_AMT - ,LMS_USE_AMT - ,ATLK_USE_AMT - ,SMS_USE_CNT - ,LMS_USE_CNT - ,MMS_USE_CNT - ,ATLK_USE_CNT - ,REG_ID - ,REG_DT - ,CHG_ID - ,CHG_DT - )VALUES( - #{userSeq} - , #{lmtYm} - , #{fxLmtAmt} - , #{mrtLmtAmt} - , 0 - , 0 - , 0 - , #{fxBlnc} - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , 0 - , #{regId} - ,now() - , #{chgId} - ,now() - ) - - - - - /* custMgt-mapper.xml(updateBindDcYn) */ - UPDATE hubez_common.EZ_SUBS_INFO - SET - BIND_DC_YN = #{bindDcYn}, - CHG_DT = NOW() - WHERE - ENTR_NO = #{entrNo} - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO hubez_admin.EZ_CHARGE_MNG ( - CHRG_SEQ - , USER_SEQ - , CHRG_DIV - , STRT_YM - , END_YM - , CHRG_AMT - , USE_YN - , REG_ID - , REG_DT - , CHG_ID - , CHG_DT - ) VALUES( - #{chrgSeq} - , #{userSeq} - , #{chrgDiv} - , #{strtYm} - , #{endYm} - , #{chrgAmt} - , 'Y' - , #{regId} - , NOW() - , #{regId} - , NOW() - ) - - - - - - UPDATE - hubez_admin.EZ_USER_LMT eul - set - eul.MRT_LMT_AMT = eul.MRT_LMT_AMT + #{extcChrgAmt}+ #{cfwdChrgAmt} - ,eul.EXTC_CHRG_AMT = eul.EXTC_CHRG_AMT + #{extcChrgAmt} - ,eul.EXTC_CHRG_BLNC = eul.EXTC_CHRG_BLNC + #{extcChrgAmt} - ,eul.CFWD_CHRG_AMT = eul.CFWD_CHRG_AMT+ #{cfwdChrgAmt} - ,eul.CFWD_CHRG_BLNC = eul.CFWD_CHRG_BLNC+ #{cfwdChrgAmt} - WHERE eul.USER_SEQ = #{userSeq} - AND eul.LMT_YM =#{lmtYm} - - - - - UPDATE - hubez_admin.EZ_CHARGE_MNG ecm - set - ecm.USE_YN ='N' - WHERE ecm.CHRG_SEQ = #{chrgSeq} - - - - INSERT INTO hubez_admin.EZ_CHARGE_MNG ( - CHRG_SEQ - , USER_SEQ - , CHRG_DIV - , STRT_YM - , END_YM - , CHRG_AMT - , USE_YN - , REG_ID - , REG_DT - , CHG_ID - , CHG_DT - ) VALUES( - #{chrgSeq} - , #{userSeq} - , 'E' - , #{strtYm} - , #{endYm} - , #{chrgAmt} - , 'Y' - , #{regId} - , NOW() - , #{regId} - , NOW() - ) - - - - UPDATE - hubez_admin.EZ_CHARGE_MNG ecm - set - ecm.USE_YN ='N' - WHERE ecm.CHRG_SEQ in - - #{list.chrgSeq} - - - - - - - - - - - - - /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ - INSERT INTO - - hubez_send.EZ_MSG_NORMAL - - - hubez_send.EZ_MSG_REAL - - ( - CLIENT_KEY, - REQ_PRODUCT, - TRAFFIC_TYPE, - MSG_STATUS, - REQ_DATE, - MSG_BIZ_KEY, - TEMPLATE_CODE, - SEND_GROUP_KEY, - CALLBACK_NUMBER, - DEPT_CODE, - MSG, - PHONE, - MERGE_DATA, - TITLE, - FILE_LIST, - FB_PRODUCT, - FB_TITLE, - FB_MSG, - FB_FILE_ID, - RCS_MSGBASE_ID, - RCS_HEADER, - RCS_FOOTER, - RCS_COPY_ALLOWED, - RCS_EXPIRY_OPTION, - RCS_AGENCY_ID, - RCS_BUTTON, - KAKAO_SENDER_KEY, - KAKAO_TEMPLATE_KEY, - KAKAO_BUTTON, - KAKAO_IMAGE_WIDE_YN, - KAKAO_IMAGE_URL, - KAKAO_IMAGE_LINK, - PUSH_APP_ID, - PUSH_PROVIDER, - PUSH_APP_USER_ID, - WEB_REQ_ID, - ORDER_ID - ) - VALUES - ( - #{clientKey}, - #{reqProduct}, - #{trafficType}, - #{msgStatus}, - NOW(), - #{msgBizKey}, - #{templateCode}, - #{sendGroupKey}, - #{callbackNumber}, - #{deptCode}, - #{msg}, - #{phone}, - #{mergeData}, - '충전금액알림', - #{fileList}, - #{fbProduct}, - #{fbTitle}, - #{fbMsg}, - #{fbFileId}, - #{rcsMsgbaseId}, - #{rcsHeader}, - #{rcsFooter}, - #{rcsCopyAllowed}, - #{rcsExpiryOption}, - #{rcsAgencyId}, - #{rcsButton}, - #{kakaoSenderKey}, - #{kakaoTemplateKey}, - #{kakaoButton}, - #{kakaoImageWideYn}, - #{kakaoImageUrl}, - #{kakaoImageLink}, - #{pushAppId}, - #{pushProvider}, - #{pushAppUserId}, - #{webReqId}, - #{orderId} - ) - - - - /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ - INSERT INTO hubez_common.EZ_NOTI_HIST - ( - SND_YMD, - USER_SEQ, - NOTI_SEQ, - NOTI_DIV, - NOTI_MSG, - WEB_REQ_ID, - REG_DT - ) - VALUES - ( - DATE_FORMAT(NOW(), '%Y%m%d'), - #{userSeq}, - #{notiSeq}, - '04', - #{notiMsg}, - #{webReqId}, - NOW() - ) - - + + + + + + + + + + + + + AND esi.SUBS_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') + + + AND esi.SUBS_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') + + + AND esi.SUBS_STTUS_CD = #{searchType1} + + + + AND eiu.EX_PROVUSERTYPE is null + + + AND eiu.EX_PROVUSERTYPE = 'DEALER' + + + AND eiu.EX_PROVUSERTYPE in ( 'CCS-CS1' + , 'CCS-CB1' + , 'CCS-CB2' + , 'CCS-CJ' + , 'CCS-LS2' + , 'CCS-LS3' + , 'CCS-M' + , 'CCS-MJ' + , 'CCS-P' + , 'CCS-P2' + , 'CCS-D' + , 'CCS-G' + , 'CCS-S') + + + AND eiu.EX_PROVUSERTYPE not in ( 'CCS-CS1' + , 'CCS-CB1' + , 'CCS-CB2' + , 'CCS-CJ' + , 'CCS-LS2' + , 'CCS-LS3' + , 'CCS-M' + , 'CCS-MJ' + , 'CCS-P' + , 'CCS-P2' + , 'CCS-D' + , 'CCS-G' + , 'CCS-S', 'DEALER') + + + + + AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esi.ENTR_NO) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(eci.BIZRNO) LIKE UPPER(CONCAT('%', #{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) */ + 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, + 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}, + (SELECT LINE_TP_CD FROM hubez_common.EZ_SVC_USER WHERE USER_SEQ = esu.USER_SEQ), + #{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 USER_SEQ FROM (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}) as sub1) + + + + /* 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} + + + ,LINE_TP_CD = #{lineType} + + WHERE + USER_ID = #{userId} + + + + + + + + + + + + + AND esu.REG_DT = ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s') + + + AND esu.REG_DT STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s') + + + AND esu.USER_STTUS_CD = #{searchType1} + + + AND esu.USER_TP_CD = #{searchType2} + + + + AND UPPER(esu.USER_ID) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND UPPER(esu.USER_NM) LIKE UPPER(CONCAT('%', #{searchText1}, '%')) + + + AND esu.USER_SEQ IN (SELECT PRNTS_USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID LIKE CONCAT('%', #{searchText1}, '%') AND USER_TP_CD ='01') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* custMgt-mapper.xml(insertCustInfo) */ + INSERT + INTO + hubez_common.EZ_CUST_INFO( + CUST_SEQ, + BIZRNO, + CUST_NM, + CUST_TY_CD, + CORPNO, + REPR_NM, + BRTHDY, + ZIPCD, + ADDR1, + ADDR2, + REG_ID, + REG_DT, + CHG_ID, + CHG_DT + )VALUES( + #{custSeq}, + #{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} + , #{prntsUserSeq} + , #{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 + ,ENTR_NO + ,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} + ,#{entrNo} + , #{userSeq} + , #{custSeq} + , #{subsSttusCd} + , #{prodCd} + , NOW() + , 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 1=1 + AND USER_ID IN + + #{item.userId} + + + AND USER_TP_CD = '02' + + + + + + /* custMgt-mapper.xml(updateAdminInfoTotal) */ + UPDATE hubez_common.EZ_SVC_USER + SET + CHG_ID = #{userId} + ,CHG_DT = NOW() + + ,USER_STTUS_CD = #{userStat} + + + ,LINE_TP_CD = #{lineType} + + WHERE USER_ID = #{userId} + + + + /* custMgt-mapper.xml(updateMemberInfo) */ + UPDATE hubez_common.EZ_SVC_USER SET + USER_NM = #{userNm}, + HP_NO = #{hpNo}, + EMAIL = #{email}, + USER_STTUS_CD = #{userStat}, + LINE_TP_CD = #{lineType}, + CHG_ID = #{userId}, + CHG_DT = NOW() + WHERE + USER_ID = #{userId} + + + + /* custMgt-mapper.xml(insertMemo) */ + INSERT INTO hubez_common.EZ_USER_MEMO( + USER_SEQ + ,MEMO + ,MKER_ID + ,MKER_NM + ,REG_ID + ,REG_DT + ) SELECT + esu.USER_SEQ + , #{memo} + , #{userId} + , esu.USER_NM + , #{userId} + , NOW() + FROM hubez_common.EZ_SVC_USER esu + WHERE esu.USER_ID = #{userId} + + + + + + UPDATE hubez_admin.EZ_USER_LMT + SET + CHG_ID = #{userId} + ,CHG_DT = NOW() + + ,MRT_LMT_AMT = #{sendingLimit} + + WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId} LIMIT 1) + AND LMT_YM = DATE_FORMAT(NOW(),'%Y%m') + + + + + + + + + + + + + /* custMgt-mapper.xml(insertSbscstHst) */ + INSERT INTO hubez_common.EZ_SBSCST_HST( + SUBS_ID + ,EFCT_ST_DT + + ,EFCT_FNS_DT + + ,PROD_CD + ,SUBS_STTUS_CD + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + )VALUES( + #{subsId} + , #{efctStDt} + + , STR_TO_DATE('9999-12-31', '%Y-%m-%d') + + , #{prodCd} + , #{subsSttusCd} + , #{regId} + , now() + , #{regId} + , now() + ) + + + + + + + + + + + /* custMgt-mapper.xml(insertOrder) */ + INSERT INTO hubez_admin.EZ_ORDER( + ORDER_ID + ,ORDER_CRET_DT + ,ORDER_TY_CD + ,REG_ID + )VALUES( + #{orderId} + , STR_TO_DATE(#{orderCretDt}, '%y%m%d%H%i%s') + , #{orderTyCd} + , #{regId} + ) + + + + + /* custMgt-mapper.xml(insertLmtdctDtl) */ + INSERT INTO hubez_admin.EZ_LMTDCT_DTL( + ORDER_CRET_DT + ,USER_SEQ + ,LMT_YM + ,USE_YM + ,LMT_TP_CD + ,DDCT_TP_CD + ,DDCT_AMT + ,EXE_ORDER_ID + ,SNDDCT_ORDER_ID + ,REG_ID + ,REG_DT + )VALUES( + #{orderCretDt} + , #{userSeq} + , #{lmtYm} + , #{useYm} + , #{lmtTpCd} + , #{ddctTpcd} + , #{ddctAmt} + , #{exeOrderId} + , #{snddctOrderId} + , #{regId} + , now() + ) + + + + + /* custMgt-mapper.xml(insertUserLmt) */ + INSERT INTO hubez_admin.EZ_USER_LMT( + USER_SEQ + ,LMT_YM + ,FX_LMT_AMT + ,MRT_LMT_AMT + ,CFWD_AMT + ,EXTNC_AMT + ,CFWD_RSTRT_BLNC + ,FX_BLNC + ,MRT_USE_AMT + ,SMS_USE_AMT + ,MMS_USE_AMT + ,LMS_USE_AMT + ,ATLK_USE_AMT + ,SMS_USE_CNT + ,LMS_USE_CNT + ,MMS_USE_CNT + ,ATLK_USE_CNT + ,REG_ID + ,REG_DT + ,CHG_ID + ,CHG_DT + )VALUES( + #{userSeq} + , #{lmtYm} + , #{fxLmtAmt} + , #{mrtLmtAmt} + , 0 + , 0 + , 0 + , #{fxBlnc} + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , 0 + , #{regId} + ,now() + , #{chgId} + ,now() + ) + + + + + /* custMgt-mapper.xml(updateBindDcYn) */ + UPDATE hubez_common.EZ_SUBS_INFO + SET + BIND_DC_YN = #{bindDcYn}, + CHG_DT = NOW() + WHERE + ENTR_NO = #{entrNo} + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO hubez_admin.EZ_CHARGE_MNG ( + CHRG_SEQ + , USER_SEQ + , CHRG_DIV + , STRT_YM + , END_YM + , CHRG_AMT + , USE_YN + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT + ) VALUES( + #{chrgSeq} + , #{userSeq} + , #{chrgDiv} + , #{strtYm} + , #{endYm} + , #{chrgAmt} + , 'Y' + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + + /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ + INSERT INTO + + hubez_send.EZ_MSG_NORMAL + + + hubez_send.EZ_MSG_REAL + + ( + CLIENT_KEY, + REQ_PRODUCT, + TRAFFIC_TYPE, + MSG_STATUS, + REQ_DATE, + MSG_BIZ_KEY, + TEMPLATE_CODE, + SEND_GROUP_KEY, + CALLBACK_NUMBER, + DEPT_CODE, + MSG, + PHONE, + MERGE_DATA, + TITLE, + FILE_LIST, + FB_PRODUCT, + FB_TITLE, + FB_MSG, + FB_FILE_ID, + RCS_MSGBASE_ID, + RCS_HEADER, + RCS_FOOTER, + RCS_COPY_ALLOWED, + RCS_EXPIRY_OPTION, + RCS_AGENCY_ID, + RCS_BUTTON, + KAKAO_SENDER_KEY, + KAKAO_TEMPLATE_KEY, + KAKAO_BUTTON, + KAKAO_IMAGE_WIDE_YN, + KAKAO_IMAGE_URL, + KAKAO_IMAGE_LINK, + PUSH_APP_ID, + PUSH_PROVIDER, + PUSH_APP_USER_ID, + WEB_REQ_ID, + ORDER_ID + ) + VALUES + ( + #{clientKey}, + #{reqProduct}, + #{trafficType}, + #{msgStatus}, + DATE_ADD(NOW(), INTERVAL +8 HOUR), + #{msgBizKey}, + #{templateCode}, + #{sendGroupKey}, + #{callbackNumber}, + #{deptCode}, + #{msg}, + #{phone}, + #{mergeData}, + '충전금액알림', + #{fileList}, + #{fbProduct}, + #{fbTitle}, + #{fbMsg}, + #{fbFileId}, + #{rcsMsgbaseId}, + #{rcsHeader}, + #{rcsFooter}, + #{rcsCopyAllowed}, + #{rcsExpiryOption}, + #{rcsAgencyId}, + #{rcsButton}, + #{kakaoSenderKey}, + #{kakaoTemplateKey}, + #{kakaoButton}, + #{kakaoImageWideYn}, + #{kakaoImageUrl}, + #{kakaoImageLink}, + #{pushAppId}, + #{pushProvider}, + #{pushAppUserId}, + #{webReqId}, + #{orderId} + ) + + + + /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ + INSERT INTO hubez_common.EZ_NOTI_HIST + ( + SND_YMD, + USER_SEQ, + NOTI_SEQ, + NOTI_DIV, + NOTI_MSG, + WEB_REQ_ID, + REG_DT + ) + VALUES + ( + DATE_FORMAT(NOW(), '%Y%m%d'), + #{userSeq}, + #{notiSeq}, + '04', + #{notiMsg}, + #{webReqId}, + NOW() + ) + + + + UPDATE + hubez_admin.EZ_USER_LMT eul + set + eul.MRT_LMT_AMT = eul.MRT_LMT_AMT + #{extcChrgAmt}+ #{cfwdChrgAmt} + ,eul.EXTC_CHRG_AMT = eul.EXTC_CHRG_AMT + #{extcChrgAmt} + ,eul.EXTC_CHRG_BLNC = eul.EXTC_CHRG_BLNC + #{extcChrgAmt} + ,eul.CFWD_CHRG_AMT = eul.CFWD_CHRG_AMT+ #{cfwdChrgAmt} + ,eul.CFWD_CHRG_BLNC = eul.CFWD_CHRG_BLNC+ #{cfwdChrgAmt} + WHERE eul.USER_SEQ = #{userSeq} + AND eul.LMT_YM =#{lmtYm} + + + + + UPDATE + hubez_admin.EZ_CHARGE_MNG ecm + set + ecm.USE_YN ='N' + WHERE ecm.CHRG_SEQ = #{chrgSeq} + + + + INSERT INTO hubez_admin.EZ_CHARGE_MNG ( + CHRG_SEQ + , USER_SEQ + , CHRG_DIV + , STRT_YM + , END_YM + , CHRG_AMT + , USE_YN + , REG_ID + , REG_DT + , CHG_ID + , CHG_DT + ) VALUES( + #{chrgSeq} + , #{userSeq} + , 'E' + , #{strtYm} + , #{endYm} + , #{chrgAmt} + , 'Y' + , #{regId} + , NOW() + , #{regId} + , NOW() + ) + + + + UPDATE + hubez_admin.EZ_CHARGE_MNG ecm + set + ecm.USE_YN ='N' + WHERE ecm.CHRG_SEQ in + + #{list.chrgSeq} + + + + + + + + + + + + + /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ + INSERT INTO + + hubez_send.EZ_MSG_NORMAL + + + hubez_send.EZ_MSG_REAL + + ( + CLIENT_KEY, + REQ_PRODUCT, + TRAFFIC_TYPE, + MSG_STATUS, + REQ_DATE, + MSG_BIZ_KEY, + TEMPLATE_CODE, + SEND_GROUP_KEY, + CALLBACK_NUMBER, + DEPT_CODE, + MSG, + PHONE, + MERGE_DATA, + TITLE, + FILE_LIST, + FB_PRODUCT, + FB_TITLE, + FB_MSG, + FB_FILE_ID, + RCS_MSGBASE_ID, + RCS_HEADER, + RCS_FOOTER, + RCS_COPY_ALLOWED, + RCS_EXPIRY_OPTION, + RCS_AGENCY_ID, + RCS_BUTTON, + KAKAO_SENDER_KEY, + KAKAO_TEMPLATE_KEY, + KAKAO_BUTTON, + KAKAO_IMAGE_WIDE_YN, + KAKAO_IMAGE_URL, + KAKAO_IMAGE_LINK, + PUSH_APP_ID, + PUSH_PROVIDER, + PUSH_APP_USER_ID, + WEB_REQ_ID, + ORDER_ID + ) + VALUES + ( + #{clientKey}, + #{reqProduct}, + #{trafficType}, + #{msgStatus}, + NOW(), + #{msgBizKey}, + #{templateCode}, + #{sendGroupKey}, + #{callbackNumber}, + #{deptCode}, + #{msg}, + #{phone}, + #{mergeData}, + '충전금액알림', + #{fileList}, + #{fbProduct}, + #{fbTitle}, + #{fbMsg}, + #{fbFileId}, + #{rcsMsgbaseId}, + #{rcsHeader}, + #{rcsFooter}, + #{rcsCopyAllowed}, + #{rcsExpiryOption}, + #{rcsAgencyId}, + #{rcsButton}, + #{kakaoSenderKey}, + #{kakaoTemplateKey}, + #{kakaoButton}, + #{kakaoImageWideYn}, + #{kakaoImageUrl}, + #{kakaoImageLink}, + #{pushAppId}, + #{pushProvider}, + #{pushAppUserId}, + #{webReqId}, + #{orderId} + ) + + + + /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ + INSERT INTO hubez_common.EZ_NOTI_HIST + ( + SND_YMD, + USER_SEQ, + NOTI_SEQ, + NOTI_DIV, + NOTI_MSG, + WEB_REQ_ID, + REG_DT + ) + VALUES + ( + DATE_FORMAT(NOW(), '%Y%m%d'), + #{userSeq}, + #{notiSeq}, + '04', + #{notiMsg}, + #{webReqId}, + NOW() + ) + + From 123d090af75a18b990877f033dd3cda7d95b3b55 Mon Sep 17 00:00:00 2001 From: kubo8 Date: Thu, 6 Apr 2023 10:19:30 +0900 Subject: [PATCH 22/28] =?UTF-8?q?=E3=85=85=E3=84=B7=E3=84=B4=E3=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/mysql/custMgt/custMgt-mapper.xml | 133 ------------------ 1 file changed, 133 deletions(-) diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 0b10c06..7c9b206 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1650,137 +1650,4 @@ ORDER BY eci.CUST_SEQ DESC --> - - - - - - - - /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ - INSERT INTO - - hubez_send.EZ_MSG_NORMAL - - - hubez_send.EZ_MSG_REAL - - ( - CLIENT_KEY, - REQ_PRODUCT, - TRAFFIC_TYPE, - MSG_STATUS, - REQ_DATE, - MSG_BIZ_KEY, - TEMPLATE_CODE, - SEND_GROUP_KEY, - CALLBACK_NUMBER, - DEPT_CODE, - MSG, - PHONE, - MERGE_DATA, - TITLE, - FILE_LIST, - FB_PRODUCT, - FB_TITLE, - FB_MSG, - FB_FILE_ID, - RCS_MSGBASE_ID, - RCS_HEADER, - RCS_FOOTER, - RCS_COPY_ALLOWED, - RCS_EXPIRY_OPTION, - RCS_AGENCY_ID, - RCS_BUTTON, - KAKAO_SENDER_KEY, - KAKAO_TEMPLATE_KEY, - KAKAO_BUTTON, - KAKAO_IMAGE_WIDE_YN, - KAKAO_IMAGE_URL, - KAKAO_IMAGE_LINK, - PUSH_APP_ID, - PUSH_PROVIDER, - PUSH_APP_USER_ID, - WEB_REQ_ID, - ORDER_ID - ) - VALUES - ( - #{clientKey}, - #{reqProduct}, - #{trafficType}, - #{msgStatus}, - NOW(), - #{msgBizKey}, - #{templateCode}, - #{sendGroupKey}, - #{callbackNumber}, - #{deptCode}, - #{msg}, - #{phone}, - #{mergeData}, - '충전금액알림', - #{fileList}, - #{fbProduct}, - #{fbTitle}, - #{fbMsg}, - #{fbFileId}, - #{rcsMsgbaseId}, - #{rcsHeader}, - #{rcsFooter}, - #{rcsCopyAllowed}, - #{rcsExpiryOption}, - #{rcsAgencyId}, - #{rcsButton}, - #{kakaoSenderKey}, - #{kakaoTemplateKey}, - #{kakaoButton}, - #{kakaoImageWideYn}, - #{kakaoImageUrl}, - #{kakaoImageLink}, - #{pushAppId}, - #{pushProvider}, - #{pushAppUserId}, - #{webReqId}, - #{orderId} - ) - - - - /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ - INSERT INTO hubez_common.EZ_NOTI_HIST - ( - SND_YMD, - USER_SEQ, - NOTI_SEQ, - NOTI_DIV, - NOTI_MSG, - WEB_REQ_ID, - REG_DT - ) - VALUES - ( - DATE_FORMAT(NOW(), '%Y%m%d'), - #{userSeq}, - #{notiSeq}, - '04', - #{notiMsg}, - #{webReqId}, - NOW() - ) - From c5692e543998d44740a6609203a869280415217b Mon Sep 17 00:00:00 2001 From: kubo8 Date: Thu, 6 Apr 2023 10:20:59 +0900 Subject: [PATCH 23/28] =?UTF-8?q?=EC=B6=A9=EC=A0=84=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EB=AC=B8=EC=9E=90=20=EB=B0=9C=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uplus/ez/api/custMgt/CustMgtMapper.java | 17 +- .../uplus/ez/api/custMgt/CustMgtService.java | 229 +++++++-------- .../uplus/ez/api/custMgt/dto/ChrgAmtDto.java | 2 +- .../co/uplus/ez/api/custMgt/dto/ChrgInfo.java | 2 +- .../mapper/mysql/custMgt/custMgt-mapper.xml | 260 +++++++++--------- 5 files changed, 240 insertions(+), 270 deletions(-) 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 3b71d1f..75c277e 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 @@ -3,13 +3,9 @@ package kr.co.uplus.ez.api.custMgt; import kr.co.uplus.ez.api.custMgt.dto.*; import kr.co.uplus.ez.common.data.ImUser; import org.apache.ibatis.annotations.Mapper; - -import java.math.BigDecimal; import java.util.List; import java.util.Map; -import javax.validation.Valid; - @Mapper public interface CustMgtMapper { @@ -126,7 +122,7 @@ public interface CustMgtMapper { String getChrgSeq(); /**충전관리 등록 */ - void insertChrgInfo(ChrgInfo chrgInfo); + int insertChrgInfo(ChrgInfo chrgInfo); /**충전관리 수정 */ void updateChrg(UpdateChrgReqDto updateChrgReqDto); /**충전관리 수정후 등록 */ @@ -134,13 +130,12 @@ public interface CustMgtMapper { /**충전관리 삭제 */ void deleteChrg(DeleteChrgReqDto deleteChrgReqDto); int updateChrgAmt(ChrgAmtDto chrgAmtDto); - BigDecimal selectChargeAmt(@Valid TargetSubsInfoDto targetUserLimit); - void insertWebMsgCli(WebMsgCliDto ezMsgDto); - String selectNotiSeq(); - void insertNotiHst(NotiHistDto notihist); - - + SvcUserInfo selectUserInfo(String register); + public String selectSequence(String seqKey); + public String selectNotiSeq(); //알림이련seq + void insertWebMsgCli(WebMsgCliDto params); + void insertNotiHst(NotiHistDto params); //2023-03-07 add request 부분 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 448313a..63171c3 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 @@ -3,10 +3,11 @@ package kr.co.uplus.ez.api.custMgt; import kr.co.uplus.ez.api.custMgt.dto.*; import kr.co.uplus.ez.common.components.HubeasyApiComponents; import kr.co.uplus.ez.common.data.*; +import kr.co.uplus.ez.common.utils.CommonUtils; +import kr.co.uplus.ez.common.utils.DateUtil; import kr.co.uplus.ez.common.utils.DateUtils; import kr.co.uplus.ez.common.utils.EncryptionUtil; import kr.co.uplus.ez.common.utils.TextUtils; - import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.mybatis.spring.SqlSessionTemplate; @@ -121,21 +122,9 @@ public class CustMgtService { @Value("${mail.templeteCode:E0005}") private String templeteCode; - /* 테이블명 */ - public static class TableName { - public static final String EZ_MSG_NORMAL = "EZ_MSG_NORMAL"; //일반 - public static final String EZ_MSG_REAL = "EZ_MSG_REAL"; //실시간보장 - public static final String EZ_MSG_BATCH = "EZ_MSG_BATCH"; //예약 - } - - /* 라인유형 */ - public static class LineTpCd { - public static final String LINE_TP_NORMAL = "normal"; //일반 - public static final String LINE_TP_REAL = "real"; //실시간보장 - public static final String LINE_TP_BATCH = "batch"; //예약 - } - - public static final String SND_CH_LMS = "LMS"; + public static final String YEAR_MONTH_DAY = "yyyyMMdd"; + public static final String WEB_REQ_ID = "WEB_REQ_ID"; + /** * date : 2022. 4. 25. auth : ckr desc : 청약 고객 정보 목록 조회 @@ -1103,34 +1092,31 @@ public class CustMgtService { * @param paramMap * @return */ - public InsertChrgResDto InsertChrg(@Valid InsertChrgReqDto insertChrgReqDto) { + @Transactional(value="db1TransactionManager") + public InsertChrgResDto InsertChrg(@Valid InsertChrgReqDto insertChrgReqDto){ CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); -// // 1. 사용자 유무 확인 + int resultcnt = 0; + + // 1. 사용자 유무 확인 int getUserIdCount = custMgtMapper.getUserIdCount(insertChrgReqDto.getUserId()); if (getUserIdCount < 1) { return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); } -// // 2. 관리자 ID 존재 여부 체크. -// SvcUserInfo svcUserInfo = custMgtMapper.selectSvcUserInfo(insertChrgReqDto.getUserId()); -// -// if (svcUserInfo == null) { -// return new InsertChrgResDto(ApiResponseCode.CM_NOT_FOUND); -// } -// - + // 3. 충전 정보 등록 - String chrgSeq = custMgtMapper.getChrgSeq(); - int userSeq = custMgtMapper.selectUserSeq(insertChrgReqDto.getUserId()); + SvcUserInfo userInfo = custMgtMapper.selectUserInfo(insertChrgReqDto.getUserId()); Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); + logger.debug("insertChrgReqDto= {}", insertChrgReqDto); + ChrgInfo chrgInfo = new ChrgInfo(); chrgInfo.setChrgSeq(chrgSeq); - chrgInfo.setUserSeq(userSeq); + chrgInfo.setUserSeq(userInfo.getUserSeq()); chrgInfo.setChrgDiv(insertChrgReqDto.getChrgDiv()); String StrYm = insertChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); @@ -1140,122 +1126,81 @@ public class CustMgtService { chrgInfo.setRegId(regId); //로그인 ID chrgInfo.setChgId(regId); //로그인 ID - custMgtMapper.insertChrgInfo(chrgInfo); + resultcnt = custMgtMapper.insertChrgInfo(chrgInfo); Date now = new Date(); String presentYm = DateUtils.dateToStr(now, "yyyyMM"); - ChrgAmtDto chrgAmtDto = new ChrgAmtDto(); if (presentYm.equals(StrYm)) { - int resultcnt = 0; - //1. user_lmt 등록 - if ("E".equals(insertChrgReqDto.getChrgDiv())) { + + if ("E".equals(insertChrgReqDto.getChrgDiv())) { //소멸 충전금 업데이트 - chrgAmtDto.setUserSeq(userSeq); - chrgAmtDto.setLmtYm(chrgInfo.getStrtYm()); + chrgAmtDto.setUserSeq(userInfo.getUserSeq()); + chrgAmtDto.setLmtYm(chrgInfo.getStrtYm()); chrgAmtDto.setExtcChrgAmt(chrgInfo.getChrgAmt()); chrgAmtDto.setCfwdChrgAmt("0"); - resultcnt = custMgtMapper.updateChrgAmt(chrgAmtDto); + }else if ("C".equals(insertChrgReqDto.getChrgDiv())) { //이월 충전금 업데이트 - chrgAmtDto.setUserSeq(userSeq); - chrgAmtDto.setLmtYm(chrgInfo.getStrtYm()); + chrgAmtDto.setUserSeq(userInfo.getUserSeq()); + chrgAmtDto.setLmtYm(chrgInfo.getStrtYm()); chrgAmtDto.setCfwdChrgAmt(chrgInfo.getChrgAmt()); chrgAmtDto.setExtcChrgAmt("0"); - resultcnt = custMgtMapper.updateChrgAmt(chrgAmtDto); } - - //2. 문자발송 - //insert 및 update 성공시 resultCnt 0이상의 정수값이 return됨 - //update성공시 - BigDecimal chargeAmt= BigDecimal.ZERO; - String webReqId = ""; - TargetSubsInfoDto targetUserLimit = new TargetSubsInfoDto(); - chargeAmt = custMgtMapper.selectChargeAmt(targetUserLimit); - - if (resultcnt>0) { - WebMsgCliDto ezMsgDto = new WebMsgCliDto(); - ezMsgDto.setTableName(TableName.EZ_MSG_REAL); - ezMsgDto.setTrafficType(LineTpCd.LINE_TP_REAL); - String clientKey = generateClientKey("R", 10); - ezMsgDto.setClientKey(clientKey); - ezMsgDto.setReqProduct(SND_CH_LMS); - ezMsgDto.setMsgStatus("ready"); - ezMsgDto.setCallbackNumber("15445992"); - ezMsgDto.setPhone(targetUserLimit.getHpNo()); //관리자 hp번호 - ezMsgDto.setWebReqId(webReqId); - ezMsgDto.setOrderId("2"); - - String msg = "[LG U+메시지허브이지]\n 충전금액 "+chargeAmt+"원이 충전되셨습니다."; - ezMsgDto.setMsg(msg); - - custMgtMapper.insertWebMsgCli(ezMsgDto); - logger.info("충전 알림 등록 : [{}]", ezMsgDto.toString()); - - //알림 이력 insert - NotiHistDto notihist = new NotiHistDto(); - String notiSeq = custMgtMapper.selectNotiSeq(); - notihist.setUserSeq(targetUserLimit.getUserSeq()); - notihist.setNotiSeq(notiSeq); - notihist.setNotiMsg(msg); - notihist.setWebReqId(webReqId); - - custMgtMapper.insertNotiHst(notihist); + if(resultcnt > 0) { + resultcnt = custMgtMapper.updateChrgAmt(chrgAmtDto); + }else { + logger.error("충전금 등록 오류"); } + + //update성공시 + if (resultcnt>0) { + String prefix = getCurrentDate(YEAR_MONTH_DAY); + String webReqId = ""; + + // 1. webReqId 채번 + webReqId = prefix + custMgtMapper.selectSequence(WEB_REQ_ID); + BigDecimal chargeAmt= BigDecimal.ZERO; + BigDecimal zero = BigDecimal.ZERO; + + //충전 금액 조회 + chargeAmt = new BigDecimal(chrgInfo.getChrgAmt()); + //알림문자 발송테이블 insert + WebMsgCliDto ezMsgDto = new WebMsgCliDto(); + ezMsgDto.setTableName("EZ_MSG_REAL"); + ezMsgDto.setTrafficType("real"); + String clientKey = generateClientKey("R", 10); + ezMsgDto.setClientKey(clientKey); + ezMsgDto.setReqProduct("LMS"); + ezMsgDto.setMsgStatus("ready"); + ezMsgDto.setCallbackNumber("15445992"); + ezMsgDto.setPhone(userInfo.getHpNo()); + ezMsgDto.setWebReqId(webReqId); + ezMsgDto.setOrderId("2"); + + String msg = "[LG U+메시지허브이지]\n이번 달 이벤트 충전 금액이 충전 되었습니다.\n*충전 금액 : "+chargeAmt+"원"; + ezMsgDto.setMsg(msg); + + custMgtMapper.insertWebMsgCli(ezMsgDto); + logger.info("충전 알림 등록 : [{}]", ezMsgDto.toString()); + + //알림 이력 insert + NotiHistDto notihist = new NotiHistDto(); + String notiSeq = custMgtMapper.selectNotiSeq(); + notihist.setUserSeq(userInfo.getUserSeq()); + notihist.setNotiSeq(notiSeq); + notihist.setNotiMsg(msg); + notihist.setWebReqId(webReqId); + + custMgtMapper.insertNotiHst(notihist); + logger.info("충전 알림 이력 등록 : [{}]", ezMsgDto.toString()); + }else{ + logger.error("충전금 한도 업데이트 오류"); + } } - return new InsertChrgResDto(ApiResponseCode.SUCCESS); } - /** - * clientKey 생성 - * - * @param rsvtType - * @return - */ - public String generateClientKey(String lineTpCdKey, int length) { - String prefix = getCurrentDate("yyyyMMddHHmmss") + lineTpCdKey; - String clientKey = ""; - - clientKey = getCommonId(prefix, length); - - return clientKey; - } - /** - * 날짜 형식을 받아서 오늘 날짜를 해당 형식으로 반환 - * - * @param format - * @return - */ - public static String getCurrentDate(String format) { - Date date = Calendar.getInstance().getTime(); - DateFormat dateFormat = new SimpleDateFormat(format); - return dateFormat.format(date); - } - /** - * 공통ID 생성(템플릿ID, 프로젝트ID, 사용자ID 등등) - * - * @return - */ - public static String getCommonId(String prefix, int len) { - // 공통 ID 접미사 - String suffix = randomGeneration(len); - - // 공통 ID - String commonId = prefix + suffix; - - return commonId; - } - /** - * 난수 생성(매개변수로 난수길이 세팅) - * - * @param len - * @return - */ - public static String randomGeneration(int len) { - String randomStr = RandomStringUtils.randomAlphanumeric(len); - return randomStr; - } /** * date : 2023. 3. 15. @@ -1264,7 +1209,6 @@ public class CustMgtService { * @param paramMap * @return */ - public UpdateChrgResDto UpdateChrg(@Valid UpdateChrgReqDto updateChrgReqDto) { CustMgtMapper custMgtMapper = sqlSessionMaster.getMapper(CustMgtMapper.class); @@ -1274,7 +1218,7 @@ public class CustMgtService { // 2. 새 정보 insert String chrgSeq = custMgtMapper.getChrgSeq(); - int userSeq = custMgtMapper.selectUserSeq(updateChrgReqDto.getUserId()); + SvcUserInfo userInfo = custMgtMapper.selectUserInfo(updateChrgReqDto.getUserId()); Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); @@ -1283,7 +1227,7 @@ public class CustMgtService { ChrgInfo chrgInfo = new ChrgInfo(); chrgInfo.setChrgSeq(chrgSeq); - chrgInfo.setUserSeq(userSeq); + chrgInfo.setUserSeq(userInfo.getUserSeq()); chrgInfo.setChrgDiv(updateChrgReqDto.getChrdDiv()); String StrYm = updateChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); @@ -1341,7 +1285,32 @@ public class CustMgtService { return new UserListResDto(ApiResponseCode.SUCCESS, userListRes); } + /** + * 날짜 형식을 받아서 오늘 날짜를 해당 형식으로 반환 + * + * @param format + * @return + */ + public String getCurrentDate(String format) { + Date date = Calendar.getInstance().getTime(); + DateFormat dateFormat = new SimpleDateFormat(format); + return dateFormat.format(date); + } + /** + * clientKey 생성 + * + * @param rsvtType + * @return + */ + public String generateClientKey(String lineTpCdKey, int length) { + String prefix = DateUtil.getCurrentDate("yyyyMMddHHmmss") + lineTpCdKey; + String clientKey = ""; + + clientKey = CommonUtils.getCommonId(prefix, length); + + return clientKey; + } /* 2023-03-07 add request 부분 * date : 2023. 1. 1. diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java index 1712c99..1293e2e 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgAmtDto.java @@ -11,7 +11,7 @@ public class ChrgAmtDto implements Serializable{ /** 충전 SEQUENCE */ private String chrgSeq; /** 유저 SEQUENCE */ - private int userSeq; + private String userSeq; /** 한도년월 */ private String lmtYm; /** 충전 시작년월 */ diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java index e8d5d06..d51f75c 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgInfo.java @@ -11,7 +11,7 @@ public class ChrgInfo implements Serializable{ /** 충전 SEQUENCE */ private String chrgSeq; /** 유저 SEQUENCE */ - private int userSeq; + private String userSeq; /** 충전구분 */ private String chrgDiv; /** 충전 시작년월 */ diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index 7c9b206..a805bca 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1309,133 +1309,6 @@ ) - - - /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ - INSERT INTO - - hubez_send.EZ_MSG_NORMAL - - - hubez_send.EZ_MSG_REAL - - ( - CLIENT_KEY, - REQ_PRODUCT, - TRAFFIC_TYPE, - MSG_STATUS, - REQ_DATE, - MSG_BIZ_KEY, - TEMPLATE_CODE, - SEND_GROUP_KEY, - CALLBACK_NUMBER, - DEPT_CODE, - MSG, - PHONE, - MERGE_DATA, - TITLE, - FILE_LIST, - FB_PRODUCT, - FB_TITLE, - FB_MSG, - FB_FILE_ID, - RCS_MSGBASE_ID, - RCS_HEADER, - RCS_FOOTER, - RCS_COPY_ALLOWED, - RCS_EXPIRY_OPTION, - RCS_AGENCY_ID, - RCS_BUTTON, - KAKAO_SENDER_KEY, - KAKAO_TEMPLATE_KEY, - KAKAO_BUTTON, - KAKAO_IMAGE_WIDE_YN, - KAKAO_IMAGE_URL, - KAKAO_IMAGE_LINK, - PUSH_APP_ID, - PUSH_PROVIDER, - PUSH_APP_USER_ID, - WEB_REQ_ID, - ORDER_ID - ) - VALUES - ( - #{clientKey}, - #{reqProduct}, - #{trafficType}, - #{msgStatus}, - DATE_ADD(NOW(), INTERVAL +8 HOUR), - #{msgBizKey}, - #{templateCode}, - #{sendGroupKey}, - #{callbackNumber}, - #{deptCode}, - #{msg}, - #{phone}, - #{mergeData}, - '충전금액알림', - #{fileList}, - #{fbProduct}, - #{fbTitle}, - #{fbMsg}, - #{fbFileId}, - #{rcsMsgbaseId}, - #{rcsHeader}, - #{rcsFooter}, - #{rcsCopyAllowed}, - #{rcsExpiryOption}, - #{rcsAgencyId}, - #{rcsButton}, - #{kakaoSenderKey}, - #{kakaoTemplateKey}, - #{kakaoButton}, - #{kakaoImageWideYn}, - #{kakaoImageUrl}, - #{kakaoImageLink}, - #{pushAppId}, - #{pushProvider}, - #{pushAppUserId}, - #{webReqId}, - #{orderId} - ) - - - - /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ - INSERT INTO hubez_common.EZ_NOTI_HIST - ( - SND_YMD, - USER_SEQ, - NOTI_SEQ, - NOTI_DIV, - NOTI_MSG, - WEB_REQ_ID, - REG_DT - ) - VALUES - ( - DATE_FORMAT(NOW(), '%Y%m%d'), - #{userSeq}, - #{notiSeq}, - '04', - #{notiMsg}, - #{webReqId}, - NOW() - ) - - UPDATE hubez_admin.EZ_USER_LMT eul @@ -1650,4 +1523,137 @@ ORDER BY eci.CUST_SEQ DESC --> + + + + + + + + /* extCarryOverAmtNoti.insertWebMsgCli - 메시지 원장 등록 */ + INSERT INTO + + hubez_send.EZ_MSG_NORMAL + + + hubez_send.EZ_MSG_REAL + + ( + CLIENT_KEY, + REQ_PRODUCT, + TRAFFIC_TYPE, + MSG_STATUS, + REQ_DATE, + MSG_BIZ_KEY, + TEMPLATE_CODE, + SEND_GROUP_KEY, + CALLBACK_NUMBER, + DEPT_CODE, + MSG, + PHONE, + MERGE_DATA, + TITLE, + FILE_LIST, + FB_PRODUCT, + FB_TITLE, + FB_MSG, + FB_FILE_ID, + RCS_MSGBASE_ID, + RCS_HEADER, + RCS_FOOTER, + RCS_COPY_ALLOWED, + RCS_EXPIRY_OPTION, + RCS_AGENCY_ID, + RCS_BUTTON, + KAKAO_SENDER_KEY, + KAKAO_TEMPLATE_KEY, + KAKAO_BUTTON, + KAKAO_IMAGE_WIDE_YN, + KAKAO_IMAGE_URL, + KAKAO_IMAGE_LINK, + PUSH_APP_ID, + PUSH_PROVIDER, + PUSH_APP_USER_ID, + WEB_REQ_ID, + ORDER_ID + ) + VALUES + ( + #{clientKey}, + #{reqProduct}, + #{trafficType}, + #{msgStatus}, + NOW(), + #{msgBizKey}, + #{templateCode}, + #{sendGroupKey}, + #{callbackNumber}, + #{deptCode}, + #{msg}, + #{phone}, + #{mergeData}, + '충전금액알림', + #{fileList}, + #{fbProduct}, + #{fbTitle}, + #{fbMsg}, + #{fbFileId}, + #{rcsMsgbaseId}, + #{rcsHeader}, + #{rcsFooter}, + #{rcsCopyAllowed}, + #{rcsExpiryOption}, + #{rcsAgencyId}, + #{rcsButton}, + #{kakaoSenderKey}, + #{kakaoTemplateKey}, + #{kakaoButton}, + #{kakaoImageWideYn}, + #{kakaoImageUrl}, + #{kakaoImageLink}, + #{pushAppId}, + #{pushProvider}, + #{pushAppUserId}, + #{webReqId}, + #{orderId} + ) + + + + /* extCarryOverAmtNoti.insertNotiHst - 알림 이력 등록 */ + INSERT INTO hubez_common.EZ_NOTI_HIST + ( + SND_YMD, + USER_SEQ, + NOTI_SEQ, + NOTI_DIV, + NOTI_MSG, + WEB_REQ_ID, + REG_DT + ) + VALUES + ( + DATE_FORMAT(NOW(), '%Y%m%d'), + #{userSeq}, + #{notiSeq}, + '04', + #{notiMsg}, + #{webReqId}, + NOW() + ) + From 3cb703385f3d219e4d9b40c1e5d9ecb3f115f725 Mon Sep 17 00:00:00 2001 From: kubo8 Date: Thu, 6 Apr 2023 10:21:17 +0900 Subject: [PATCH 24/28] =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EC=9C=A0=ED=8B=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/uplus/ez/common/utils/CommonUtils.java | 477 ++++++++++++++++++ .../kr/co/uplus/ez/common/utils/DateUtil.java | 159 ++++++ 2 files changed, 636 insertions(+) create mode 100644 src/main/java/kr/co/uplus/ez/common/utils/CommonUtils.java create mode 100644 src/main/java/kr/co/uplus/ez/common/utils/DateUtil.java diff --git a/src/main/java/kr/co/uplus/ez/common/utils/CommonUtils.java b/src/main/java/kr/co/uplus/ez/common/utils/CommonUtils.java new file mode 100644 index 0000000..63c37ae --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/common/utils/CommonUtils.java @@ -0,0 +1,477 @@ +package kr.co.uplus.ez.common.utils; + +import java.io.Serializable; +import java.lang.reflect.Array; +import java.text.DateFormat; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang3.RandomStringUtils; +import org.apache.commons.lang3.StringUtils; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; + +public class CommonUtils { + /*============================ 문자열관련 Util ============================*/ + /** + * 문자열이 null일 경우 기본값으로 반환하는 메소드 + * + * @param String string : 검사할 문자열 + * @param String defaultValue : 기본값 + * @return String : 반환값 + * @throws Exception : 반환 중 예외 발생시 + */ + public static String nvl(String string, String defaultValue) throws Exception{ + return getString(string, defaultValue); + } + + /** + * 문자열이 널일경우 ""으로 반환하는 메소드 + * + * @param String string : 검사할 문자열 + * @return String : 결과값 + */ + public static String nvl(String string){ + return getString(string); + } + + /** + * Object를 받아 문자열 값으로 리턴함. + * @param obj + * @return + */ + public static String getString(Object obj) { + return getString(obj,""); + } + + /** + * Object를 받아 문자열 값으로 리턴함, 없을경우 DefaultValue 리턴. + * @param obj + * @param defaultValue + * @return + */ + public static String getString(Object obj, String defaultValue) { + String value = "" + obj; + try { + if(obj == null) { + value = defaultValue; + } else { + if(value.equals("null") || value.length() == 0) { + value = defaultValue; + } + } + } catch(Exception e){ + value = defaultValue; + } + return value; + } + + /** + * 기능 : 에러대신 Zero String을 리턴하는 substring 함수
+ * (예) getSubstring("1234",4,2) --> ""
+ * @param String str string source + * @param int start substring 시작위치 + * @param int length substring 길이 + * @return String + */ + public static String getSubstring(String str, int start, int len){ + String result = null; + int slen = 0; + + try{ + str = nvl(str); + slen = str.length(); + + if((slen < 1) || (start < 0) || (len < 1)){ + throw new Exception(); + } + + if((slen - 1) < start){ + throw new Exception(); + } + + if(slen >= (start + len)){ + slen = start+len; + } + + result = str.substring(start, slen); + } + catch(Exception e){ + result = ""; + } + + return result; + } + + /** + * 숫자나 문자열ㅇ르 Int형 문자로 변환 + * @param object + * @return + */ + public static String getIntString(Object object) { + String returnString = ""; + if(object==null) return returnString; + returnString = String.valueOf(object); + if("".equals(returnString)) return returnString; + try { + Double doubleValue = Double.valueOf(returnString); + DecimalFormat df = new DecimalFormat( "#,###" ); + return df.format(doubleValue); + } catch(Exception e) { + returnString = String.valueOf(object); + } + return returnString; + } + + /** + * 숫자나 문자열ㅇ르 Int형 문자로 변환 + * @param object + * @return + */ + public static String getIntString(Object object, String str) { + String returnString = ""; + if(object==null) return str; + returnString = String.valueOf(object); + if(returnString == "") return returnString; + try { + Double doubleValue = Double.valueOf(returnString); + DecimalFormat df = new DecimalFormat( "#,###" ); + return df.format(doubleValue); + } catch(Exception e) { + returnString = String.valueOf(object); + } + return returnString; + } + + /** + * 숫자나 문자열ㅇ르 Int형 문자로 변환 (소숫점 2자리) + * @param object + * @return + */ + public static String getDoubleString(Object object) { + String returnString = ""; + if(object==null) return returnString; + returnString = String.valueOf(object); + if(returnString == "") return returnString; + try { + Double doubleValue = Double.valueOf(returnString); + DecimalFormat df = new DecimalFormat( "#,###.##" ); + return df.format(doubleValue); + } catch(Exception e) { + returnString = String.valueOf(object); + } + return returnString; + } + + /** + * 숫자나 문자열ㅇ르 Int형 문자로 변환 (소숫점 2자리) + * @param object + * @return + */ + public static String getDoubleString(Object object, String str) { + String returnString = ""; + if(object==null) return str; + returnString = String.valueOf(object); + if(returnString == "") return returnString; + try { + Double doubleValue = Double.valueOf(returnString); + DecimalFormat df = new DecimalFormat( "#,###.##" ); + return df.format(doubleValue); + } catch(Exception e) { +// + returnString = String.valueOf(object); + } + return returnString; + } + + + /** + * String UnEscape 처리 + * + * @param src + * @return + */ + public static String unescape(String src) { + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length()); + int lastPos = 0, pos = 0; + char ch; + while (lastPos < src.length()) { + pos = src.indexOf("%", lastPos); + if (pos == lastPos) { + if (src.charAt(pos + 1) == 'u') { + ch = (char) Integer.parseInt(src + .substring(pos + 2, pos + 6), 16); + tmp.append(ch); + lastPos = pos + 6; + } else { + ch = (char) Integer.parseInt(src + .substring(pos + 1, pos + 3), 16); + tmp.append(ch); + lastPos = pos + 3; + } + } else { + if (pos == -1) { + tmp.append(src.substring(lastPos)); + lastPos = src.length(); + } else { + tmp.append(src.substring(lastPos, pos)); + lastPos = pos; + } + } + } + return tmp.toString(); + } + + /** + * Object -> int + */ + public static int getInt (Object quan) throws Exception{ + String strValue = getString(quan); + int value = 0; + try{ + value = Integer.valueOf(strValue); + }catch(Exception e){ + } + return value; + } + /*============================ 문자열관련 Util 끝 ============================*/ + + /** + * 공통ID 생성(템플릿ID, 프로젝트ID, 사용자ID 등등) + * + * @return + */ + public static String getCommonId(String prefix, int len) { + // 공통 ID 접미사 + String suffix = randomGeneration(len); + + // 공통 ID + String commonId = prefix + suffix; + + return commonId; + } + + /** + * 난수 생성(매개변수로 난수길이 세팅) + * + * @param len + * @return + */ + public static String randomGeneration(int len) { + String randomStr = RandomStringUtils.randomAlphanumeric(len); + return randomStr; + } + + /** + * 빈 object인지 확인 + * @param obj + * @return + */ + @SuppressWarnings("rawtypes") + public static Boolean isEmptyObject(Object obj) { + if (obj instanceof String) return obj == null || "".equals(obj.toString().trim()); + else if (obj instanceof List) return obj == null || ((List) obj).isEmpty(); + else if (obj instanceof Map) return obj == null || ((Map) obj).isEmpty(); + else if (obj instanceof Object[]) return obj == null || Array.getLength(obj) == 0; + else return obj == null; + } + + /** + * 비어있지 않은 object인지 확인 + * @param obj + * @return + */ + public static Boolean isNotEmptyObject(Object obj) { + return !isEmptyObject(obj); + } + + /** + * map에 key값에 매핑되는 value가 있는지 확인(빈값 true) + * @param tMap + * @param key + * @return + */ + public static Boolean isEmptyValue(Map tMap, String key) { + if(!tMap.containsKey(key) || isEmptyObject(tMap.get(key))) return true; + else return false; + } + + /** + * map에 key값에 매핑되는 value가 없으면 빈값 있으면 해당값을 String으로 return + * @param tMap + * @param key + * @return + */ + public static String getStrValue(Map tMap, String key) { + if(isEmptyValue(tMap, key)) return StringUtils.EMPTY; + else return getString(tMap.get(key)); + } + + /** + * 시분초 + 쓰는곳 해서 ID 만들어주는것 + * @param targetStr - 3글자 이상 하면 varchar(18) 이상 됨 + * @return + */ + public static String generationSringToHex(String targetStr) { + + String now = new SimpleDateFormat("HHmmss").format(System.currentTimeMillis()) + targetStr; + String result = ""; + for (int i = 0; i < now.length(); i++) { + result += String.format("%02X", (int) now.charAt(i)); + } + return result; + } + + /** + * 로그인 아이디 마스킹 처리 + */ + public static String setMaskingLoginId(String loginId){ + String maskingLoginId = loginId; + int length = maskingLoginId.length(); + length = length-2; + maskingLoginId = maskingLoginId.replaceAll("(?=.{"+length+"}).", "*"); //���ڸ� 3�� ����ŷ + return maskingLoginId; + } + + /** + * 이름 마스킹 처리 + */ + public static String setMaskingUserNm(String userNm){ + String firstName = ""; + String midName = ""; + String lastName = ""; + if(!isAlpha(userNm) && !isKorean(userNm)) { + firstName = userNm; + } else { + if(!isAlpha(userNm)) { + firstName = userNm.substring(0, 1); + midName = userNm.substring(1, 2); + lastName = userNm.substring(2, userNm.length()); + } else { + firstName = userNm.substring(0, 2); + midName = userNm.substring(2, userNm.length()-2); + lastName = userNm.substring(userNm.length()-2, userNm.length()); + } + + } + String masking = ""; + for(int i = 0; i < midName.length(); i++) { + masking += "*"; + } + String rtnUserNm = firstName + masking + lastName; + return rtnUserNm; + } + + /** + * 영어이름인지 확인 + */ + public static boolean isAlpha(String userNm){ + boolean isAlpha = Pattern.matches("^[a-zA-Z]*$", userNm.subSequence(0, 1)); + return isAlpha; + } + + /** + * 한글이름인지 확인 + */ + public static boolean isKorean(String userNm){ + boolean isKorean = Pattern.matches("^[��-�R]*$", userNm.subSequence(0, 1)); + return isKorean; + } + + /** + * convert List to JSONArray + * @param list + * @return + */ + public static JSONArray convertListToJsonArray(List> list) { + JSONArray jsonArr = new JSONArray(); + for(Map map : list) { + jsonArr.add(convertMapToJson(map)); + } + return jsonArr; + } + + /** + * convert Map to JSONObject + * @param map + * @return + */ + public static JSONObject convertMapToJson(Map map) { + JSONObject jsonObj = new JSONObject(); + for(Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + jsonObj.put(key, value); + } + return jsonObj; + } + + /** + * 세션 생성 + * @param req + * @param attrib + * @param ser + */ + public static void addToSession(HttpServletRequest req, String attrib, Serializable ser) { + HttpSession sess = req.getSession(true); + sess.setAttribute(attrib, sess); + } + + + // 핸드폰번호 유효성 체크 + public static boolean isHpNumber(String value) { + String regExp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$"; + return value.matches(regExp); + } + + // 중복제거 메소드, key는 제거할 맵 대상 + public static List> distinctArray(List> target, Object key){ + if(target != null){ + target = target.stream().filter(distinctByKey(o-> o.get(key))).collect(Collectors.toList()); + } + return target; + } + + // 중복 제거를 위한 함수 + public static Predicate distinctByKey(Function keyExtractor) { + Map seen = new ConcurrentHashMap<>(); + return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; + } + + // 검색 조건 날짜 배열에 넣어서 리턴해주는 함수 + public static String[] dateArrReturn(String startDate, String endDate) throws Exception{ + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + Date strDate = dateFormat.parse(startDate); + Date edDate = dateFormat.parse(endDate); + + long diffSec = (edDate.getTime() - strDate.getTime()) / 1000; + int diffDays = (int) diffSec / (24 * 60 * 60); + + String[] dateArr = new String[diffDays + 1]; + + for(int i=0; i<=diffDays; i++) { + Calendar cal = Calendar.getInstance(); + cal.setTime(strDate); + cal.add(Calendar.DATE, i); + String dateStr = dateFormat.format(cal.getTime()); + dateArr[i] = dateStr; + } + + return dateArr; + } + +} diff --git a/src/main/java/kr/co/uplus/ez/common/utils/DateUtil.java b/src/main/java/kr/co/uplus/ez/common/utils/DateUtil.java new file mode 100644 index 0000000..3dabea9 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/common/utils/DateUtil.java @@ -0,0 +1,159 @@ +package kr.co.uplus.ez.common.utils; + +import java.sql.Timestamp; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.lang3.StringUtils; + +public class DateUtil { + + /** + * 날짜 형식을 받아서 오늘 날짜를 해당 형식으로 반환 + * + * @param format + * @return + */ + public static String getCurrentDate(String format) { + Date date = Calendar.getInstance().getTime(); + DateFormat dateFormat = new SimpleDateFormat(format); + return dateFormat.format(date); + } + + /** + * 현재날짜의 분을 첫째자리 반올림하여 리턴 + * @return + */ + public static String getCurrentRoundMin() { + int min = LocalDateTime.now().getMinute(); + min = (int) (Math.round((double)min/10)*10); + return StringUtils.leftPad(String.valueOf(min), 2, '0'); + } + + /** + * 현재 시스템 날짜를 "yyyy-MM-dd" 형식으로 String 형으로 반환 + * + * @return String + */ + public static String getCurrentDate() { + return getCustomDay("", 0); + } + + /** + * 현재 시스템 시간을 "HHmmss" 형식으로 String 형으로 반환 + * + * @return String + */ + public static String getCurrentTime() { + Timestamp wdate = null; + String sDate = null; + String temp = null; + StringBuffer stringBuffer = new StringBuffer(); + long currentTimeMillis = System.currentTimeMillis(); + + wdate = new Timestamp(currentTimeMillis); + sDate = wdate.toString(); + + stringBuffer.append(sDate.substring(11, 13)); + stringBuffer.append(sDate.substring(14, 16)); + stringBuffer.append(sDate.substring(17, 19)); + + temp = stringBuffer.toString(); + + return temp; + } + + /** + * 현재 시스템 날짜 시간을 "yyyy-MM-dd HH24:mm:ss" 형식으로 반환 + * + * @return String + */ + public static String getCurrentDateTime() { + Timestamp timestamp = null; + String timestampString = null; + long currentTimeMillis = 0; + + currentTimeMillis = System.currentTimeMillis(); + + timestamp = new Timestamp(currentTimeMillis); + + timestampString = timestamp.toString(); + timestampString = timestampString.substring(0, 19); + + return timestampString; + } + + /** + * 현재 일자 기준으로 이전 일자를 찾아 리턴한다. + * + * @param int + * @return String + */ + public static String getCustomDay(String mode, int addDay) { + Calendar dt = Calendar.getInstance(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + + if (addDay == 0) { + return df.format(dt.getTime()); + } else { + if (mode.equals("MONTH")) { + dt.add(Calendar.MONTH, addDay); + + return df.format(dt.getTime()); + } else if (mode.equals("YEAR")) { + dt.add(Calendar.YEAR, addDay); + + return df.format(dt.getTime()); + } else { + dt.add(Calendar.DATE, addDay); + + return df.format(dt.getTime()); + } + } + } + + /** + * 특일 일자 기준으로 말일을 확인 + * + * @param String + * @return String + **/ + public static String getCustomLastDay(String CallDay) { + int Year = Integer.valueOf(CallDay.substring(0, 4)); + int Month = Integer.valueOf(CallDay.substring(5, 7)) - 1; + + Calendar calendar = Calendar.getInstance(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + + calendar.set(Year, Month, 1); + + int DayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + + calendar.set(Year, Month, DayOfMonth); + + return df.format(calendar.getTime()); + } + + /** + * 현재일 기준으로 특정일까지 일수 차이를 리턴 + * @param targetDate + * @return + * @throws Exception + */ + public static long diffDays(Date targetDate) throws Exception { + Calendar getToday = Calendar.getInstance(); + getToday.setTime(new Date()); + + Calendar cmpDate = Calendar.getInstance(); + cmpDate.setTime(targetDate); + + long diffSec = (cmpDate.getTimeInMillis() - getToday.getTimeInMillis()) / 1000; + long diffDays = diffSec / (24*60*60); + + return diffDays; + } + +} From f78430aa542918a19b76df92cdcd744c73d40d21 Mon Sep 17 00:00:00 2001 From: won503 Date: Thu, 6 Apr 2023 13:57:48 +0900 Subject: [PATCH 25/28] =?UTF-8?q?admin=5Fchrg=20=EC=88=98=EC=A0=95=20disab?= =?UTF-8?q?le=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custMgt/components/ChrgDetailPop.vue | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue index 5185c18..d0b0c92 100644 --- a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue +++ b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue @@ -8,7 +8,7 @@