From fd0aaa2ea5928c6f18d376b5c5649ce2767254e1 Mon Sep 17 00:00:00 2001 From: tolag3 Date: Mon, 22 May 2023 18:38:13 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EC=A4=80=ED=98=B8=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=98=A8=20api=20=EC=BB=A4=EB=B0=8B=20=20-=20?= =?UTF-8?q?=EC=9A=94=EA=B8=88=EB=82=B4=EC=97=AD=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mjon/api/inqry/mapper/PriceMapper.java | 8 +- .../inqry/mapper/domain/PriceResponse.java | 59 +++++++++------ .../mjon/api/inqry/service/PriceService.java | 4 +- .../inqry/service/impl/PriceServiceImpl.java | 75 ++++++++++++++++++- .../api/inqry/web/PriceRestController.java | 31 +------- .../mapper/api/inqry/PriceMapper.xml | 25 ++++++- 6 files changed, 142 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/PriceMapper.java b/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/PriceMapper.java index 0ed2435..b0c2f52 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/PriceMapper.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/PriceMapper.java @@ -1,8 +1,8 @@ package com.itn.mjonApi.mjon.api.inqry.mapper; -import org.apache.ibatis.annotations.Mapper; +import java.util.Map; -import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO; +import org.apache.ibatis.annotations.Mapper; /** * @packageName : com.itn.mjonApi.mjon.api.inqry.service.mapper @@ -26,6 +26,8 @@ public interface PriceMapper { * @param priceVO * @return */ - double selectUserMoney(PriceVO priceVO); + double selectUserMoney(String mberId); + + MapselectMberPriceInfo(String mberId); } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/domain/PriceResponse.java b/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/domain/PriceResponse.java index 8424985..4d2df95 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/domain/PriceResponse.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/inqry/mapper/domain/PriceResponse.java @@ -1,14 +1,20 @@ package com.itn.mjonApi.mjon.api.inqry.mapper.domain; -import lombok.Getter; -import lombok.Setter; +import java.time.LocalDateTime; + import org.springframework.http.HttpStatus; -import java.time.LocalDateTime; -import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; @Setter @Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor public class PriceResponse { //private HttpStatus status; @@ -17,10 +23,16 @@ public class PriceResponse { private String message; private LocalDateTime localDateTime; - - private Object object; - private List objectList; + private double shortPrice; // 단문 이용단가 + private double longPrice; // 장문 이용단가 + private double picturePrice; // 그림 이용단가 + + private double userMoney; // 잔액 + + private int shortSendPsbltEa; // 단문 발송 가능건 수 + private int longSendPsbltEa; // 장문 발송 가능건 수 + private int pictureSendPsbltEa; // 그림 발송 가능건 수 /* * 200-OK : 정상접속 @@ -34,23 +46,24 @@ public class PriceResponse { this.localDateTime = timestamp; } - public PriceResponse(HttpStatus status, String message, LocalDateTime timestamp, Object object) { - this.resultCode = status.value(); - checkMessage(status, message); - - this.object= object; - this.localDateTime = timestamp; - } +// public PriceResponse(HttpStatus status +// , String message +// , LocalDateTime timestamp +// , PriceVO priceVO +// ) { +// this.resultCode = status.value(); +// checkMessage(status, message); +// +// this.localDateTime = timestamp; +// this.shortPrice = priceVO.getShortPrice(); +// this.longPrice = priceVO.getLongPrice(); +// this.picturePrice = priceVO.getPicturePrice(); +// this.userMoney = priceVO.getUserMoney(); +// this.shortSendPsbltEa = priceVO.getShortSendPsbltEa(); +// this.longSendPsbltEa = priceVO.getLongSendPsbltEa(); +// this.pictureSendPsbltEa = priceVO.getPictureSendPsbltEa(); +// } - public PriceResponse(HttpStatus status, String message, LocalDateTime timestamp, List objectList) { - this.resultCode = status.value(); - checkMessage(status, message); - - this.objectList = objectList; - this.localDateTime = timestamp; - - } - private void checkMessage(HttpStatus status, String message) { if ("".equals(message)){ this.message = status.name(); }else { this.message = message; } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/PriceService.java b/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/PriceService.java index 81b6a61..8176c07 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/PriceService.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/PriceService.java @@ -1,6 +1,6 @@ package com.itn.mjonApi.mjon.api.inqry.service; -import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO; +import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceResponse; /** * @packageName : com.itn.mjonApi.mjon.api.inqry.service @@ -15,6 +15,6 @@ import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO; */ public interface PriceService { - double selectUserMoney(PriceVO priceVO) throws Exception; + public PriceResponse selectUserPrice(String mberId) throws Exception; } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/impl/PriceServiceImpl.java b/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/impl/PriceServiceImpl.java index ea3b6c9..484f5cc 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/impl/PriceServiceImpl.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/inqry/service/impl/PriceServiceImpl.java @@ -1,12 +1,17 @@ package com.itn.mjonApi.mjon.api.inqry.service.impl; +import java.util.Map; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.itn.mjonApi.mjon.api.inqry.mapper.PriceMapper; +import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceResponse; import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO; import com.itn.mjonApi.mjon.api.inqry.service.PriceService; +import lombok.extern.slf4j.Slf4j; + /** * @packageName : com.itn.mjonApi.mjon.api.inqry.service.impl * @fileName : PriceServiceImpl.java @@ -18,6 +23,7 @@ import com.itn.mjonApi.mjon.api.inqry.service.PriceService; * ----------------------------------------------------------- * 2023.05.15 JunHo Lee 최초 생성 */ +@Slf4j @Service public class PriceServiceImpl implements PriceService { @@ -25,7 +31,72 @@ public class PriceServiceImpl implements PriceService { PriceMapper priceMapper; @Override - public double selectUserMoney(PriceVO priceVO) throws Exception { - return priceMapper.selectUserMoney(priceVO); + public PriceResponse selectUserPrice(String mberId) throws Exception { + + PriceResponse priceResponse = new PriceResponse(); + + try { + // 이용단가 + PriceVO priceVO = price_refine(mberId, priceMapper); + // 발송가능건수 + sendEa_refine(priceVO); + + priceResponse = PriceResponse.builder() + //1. 잔액 + .userMoney(priceMapper.selectUserMoney(mberId)) + //2. 이용단가 + .shortPrice(priceVO.getShortPrice()) + .longPrice(priceVO.getLongPrice()) + .picturePrice(priceVO.getPicturePrice()) + //3. 발송가능건수 + .shortSendPsbltEa(0) + .longSendPsbltEa(0) + .pictureSendPsbltEa(0) + .build(); + + } catch (Exception e) { + log.info("selectPrice Error [{}]", e.getMessage()); + } + + return priceResponse; } + + private PriceVO price_refine(String mberId, PriceMapper priceMapper) { + + double sys_shortPrice = 0.0f; + double sys_longPrice = 0.0f; + double sys_picturePrice = 0.0f; + + double shortPrice = 0.0f; + double longPrice = 0.0f; + double picturePrice = 0.0f; + + //1.시스템 기본 단가 정보 불러오기 + //2.사용자 개인 단가 정보 불러오기 + Map priceMap = priceMapper.selectMberPriceInfo(mberId); + + sys_shortPrice = Double.parseDouble(String.valueOf(priceMap.get("sysShortPrice"))); + sys_longPrice = Double.parseDouble(String.valueOf(priceMap.get("sysLongPrice"))); + sys_picturePrice = Double.parseDouble(String.valueOf(priceMap.get("sysPicturePrice"))); + + shortPrice = Double.parseDouble(String.valueOf(priceMap.get("shortPrice"))); + longPrice = Double.parseDouble(String.valueOf(priceMap.get("longPrice"))); + picturePrice = Double.parseDouble(String.valueOf(priceMap.get("picturePrice"))); + + // SMS 인경우 + // 사용자 개인 단가가 없으면 시스템 단가로 + PriceVO priceVO = PriceVO.builder() + .shortPrice(shortPrice == 0.0f ? sys_shortPrice : shortPrice) + .longPrice(longPrice == 0.0f ? sys_longPrice : longPrice) + .picturePrice(picturePrice == 0.0f ? sys_picturePrice : picturePrice) + .build(); + return priceVO; + } + + private PriceVO sendEa_refine(PriceVO priceVO) { + + return priceVO; + + } + } diff --git a/src/main/java/com/itn/mjonApi/mjon/api/inqry/web/PriceRestController.java b/src/main/java/com/itn/mjonApi/mjon/api/inqry/web/PriceRestController.java index f6006ff..7b58d99 100644 --- a/src/main/java/com/itn/mjonApi/mjon/api/inqry/web/PriceRestController.java +++ b/src/main/java/com/itn/mjonApi/mjon/api/inqry/web/PriceRestController.java @@ -1,9 +1,6 @@ package com.itn.mjonApi.mjon.api.inqry.web; -import java.time.LocalDateTime; - import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,8 +9,6 @@ import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceResponse; import com.itn.mjonApi.mjon.api.inqry.mapper.domain.PriceVO; import com.itn.mjonApi.mjon.api.inqry.service.PriceService; -import lombok.extern.slf4j.Slf4j; - /** * @packageName : com.itn.mjonApi.mjon.api.inqry.web * @fileName : PriceRestController.java @@ -25,7 +20,6 @@ import lombok.extern.slf4j.Slf4j; * ----------------------------------------------------------- * 2023.05.15 JunHo Lee 최초 생성 */ -@Slf4j @RestController public class PriceRestController { @@ -37,28 +31,11 @@ public class PriceRestController { * @author : JunHo Lee * @date : 2023.05.16 * @return + * @throws Exception */ @PostMapping("/api/inqry/selectPrice") - public ResponseEntity selectPrice(PriceVO priceVO){ + public ResponseEntity selectPrice(PriceVO priceVO) throws Exception{ - PriceVO resultVO = new PriceVO(); - - System.out.println(priceVO.getMberId()); - //1. 잔액 - try { -// resultVO.builder() -// .userMoney(priceService.selectUserMoney(priceVO)).b; - resultVO = PriceVO.builder() - .userMoney(priceService.selectUserMoney(priceVO)) - .build(); - //2. 이용단가 - - //3. 발송가능건수 - - } catch (Exception e) { - log.info("selectPrice Error [{}]", e.getMessage()); - } - return ResponseEntity.ok(new PriceResponse(HttpStatus.OK, "test" , LocalDateTime.now(), resultVO.getUserMoney())); - } - + return ResponseEntity.ok(priceService.selectUserPrice(priceVO.getMberId())); + } } diff --git a/src/main/resources/mapper/api/inqry/PriceMapper.xml b/src/main/resources/mapper/api/inqry/PriceMapper.xml index d358f72..5f94722 100644 --- a/src/main/resources/mapper/api/inqry/PriceMapper.xml +++ b/src/main/resources/mapper/api/inqry/PriceMapper.xml @@ -6,14 +6,33 @@ + + \ No newline at end of file