TsfGoodsService.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.style24.front.biz.service;
  2. import com.style24.core.support.env.TscConstants;
  3. import com.style24.persistence.domain.Goods;
  4. import com.style24.persistence.domain.GoodsStock;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import com.style24.front.biz.dao.TsfGoodsDao;
  8. import lombok.extern.slf4j.Slf4j;
  9. /**
  10. * 상품 Service
  11. *
  12. * @author gagamel
  13. * @since 2020. 12. 29
  14. */
  15. @Service
  16. @Slf4j
  17. public class TsfGoodsService {
  18. @Autowired
  19. private TsfGoodsDao goodsDao;
  20. /**
  21. * 상품 정보 조회
  22. * @param goods
  23. * @return
  24. * @author xodud1202
  25. * @since 2021. 01. 28
  26. */
  27. public Goods getGoodsInfo(Goods goods) {
  28. return goodsDao.getGoodsInfo(goods);
  29. }
  30. /**
  31. * 구성 상품 정보 조회
  32. * @param goods
  33. * @return
  34. * @author xodud1202
  35. * @since 2021. 01. 28
  36. */
  37. public Goods getGoodsCompsInfo(Goods goods) {
  38. return goodsDao.getGoodsCompsInfo(goods);
  39. }
  40. /**
  41. * 상품 재고 정보
  42. * @param goodsStock
  43. * @return
  44. * @author xodud1202
  45. * @since 2021. 01. 28
  46. */
  47. public GoodsStock getGoodsStockInfo(GoodsStock goodsStock) {
  48. return goodsDao.getGoodsStockInfo(goodsStock);
  49. }
  50. /**
  51. * 상품 재고 체크
  52. * @param goodsStock
  53. * goodsCd (원상품코드) 필수
  54. * goodsType (상품타입) 필수
  55. * optCd (옵션코드) 필수
  56. * goodsQty (확인 재고 수량) 필수
  57. * itemCd (세트 구성 상품코드) 세트
  58. * @return String
  59. * @author xodud1202
  60. * @since 2021. 01. 28
  61. */
  62. public String getCheckStock(GoodsStock param) {
  63. if(param.getGoodsType().equals(TscConstants.GoodsType.SET.value())) { // 세트상품이면 구성 상품코드로 조회
  64. GoodsStock stockCheck = new GoodsStock(); // 재고 조회 결과
  65. stockCheck.setGoodsCd(param.getItemCd());
  66. stockCheck.setOptCd(param.getOptCd());
  67. stockCheck = goodsDao.getGoodsStockInfo(stockCheck); // 구성 상품 재고 조회
  68. Goods compsInfo = new Goods();
  69. compsInfo.setGoodsCd(param.getGoodsCd());
  70. compsInfo.setCompsGoodsCd(param.getItemCd());
  71. compsInfo.setGoodsType(param.getGoodsType());
  72. compsInfo = goodsDao.getGoodsCompsInfo(compsInfo); // 구성상품 정보 조회
  73. log.info("CHECK param.getGoodsQty() INFO >> " + param.getGoodsQty());
  74. log.info("CHECK compsInfo.getQty() INFO >> " + compsInfo.getQty());
  75. log.info("CHECK stockCheck.getCurrStockQty() INFO >> " + stockCheck.getCurrStockQty());
  76. // 재고 체크
  77. if(param.getGoodsQty() * compsInfo.getQty() > stockCheck.getCurrStockQty()) {
  78. return param.getItemCd() + "의 재고가 충분하지 않습니다.";
  79. }
  80. } else {
  81. GoodsStock stockCheck = new GoodsStock(); // 재고 조회 결과
  82. stockCheck.setGoodsCd(param.getGoodsCd());
  83. stockCheck.setOptCd(param.getOptCd());
  84. stockCheck = goodsDao.getGoodsStockInfo(stockCheck); // 구성 상품 재고 조회
  85. if(param.getGoodsQty() > stockCheck.getCurrStockQty()) {
  86. return param.getGoodsCd() + "의 재고가 충분하지 않습니다.";
  87. }
  88. }
  89. return "SUCCESS";
  90. }
  91. }