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}) + + + +